crudini

Delphi源码 2025-08-08

crudini操纵INI文件的实用程序

用法:

crudini --set [OPTION]... config_file section [param] [value] crudini --get [OPTION]... config_file [section] [param] crudini --del [OPTION]... config_file section [param] [list value] crudini --merge [OPTION]... config_file [section] SECTION can be empty ("") or "DEFAULT" in which case, params not in a section, i.e. global parameters are operated on. If 'DEFAULT' is used with --set, an explicit [DEFAULT] section is added. Multiple --set|--del|--get operations for a config_file can be specified. ">
 crudini --set [OPTION]...   config_file section   [param] [value]
crudini --get [OPTION]...   config_file [section] [param]
crudini --del [OPTION]...   config_file section   [param] [list value]
crudini --merge [OPTION]... config_file [section]

SECTION can be empty ("") or "DEFAULT" in which case,
params not in a section, i.e. global parameters are operated on.
If 'DEFAULT' is used with --set, an explicit [DEFAULT] section is added.

Multiple --set|--del|--get operations for a config_file can be specified.

选项:


  --existing[=WHAT]  For --set, --del and --merge, fail if item is missing,
                       where WHAT is 'file', 'section', or 'param',
                       or if WHAT not specified; all specified items.
  --format=FMT       For --get, select the output FMT.
                       Formats are 'sh','ini','lines'
  --ini-options=OPT  Set options for handling ini files.  Options are:
                       'nospace': use format name=value not name = value
                       'space': ensure name = value format
                       'sectionspace': ensure one blank line between sections
                       'ignoreindent': ignore leading whitespace
  --inplace          Lock and write files in place.
                       This is not atomic but has less restrictions
                       than the default replacement method.
  --list             For --set and --del, update a list (set) of values
  --list-sep=STR     Delimit list values with "STR" instead of " ,".
                       An empty STR means any whitespace is a delimiter.
  --output=FILE      Write output to FILE instead. '-' means stdout
  --verbose          Indicate on stderr if changes were made
  --help             Write this help to stdout
  --version          Write version to stdout

示例:

crudini --set config_file section parameter value # Add/Update a var in the root or global area. # I.e. that's not under a [section]. crudini --set config_file "" parameter value # Update an existing var crudini --set --existing config_file section parameter value # Add/Update/Delete multiple variables atomically crudini --set config_file section parameter1 value --set config_file section parameter2 value --del config_file section parameter3 # Get multiple items from stdin env | crudini --get - '' USER --get - '' SHELL # Add/Append a value to a comma separated list # Note any whitespace around commas is ignored crudini --set --list config_file section parameter a_value # Add/Append a value to a whitespace separated list # Note multiline lists are supported (as newline is whitespace) crudini --set --list --list-sep= config_file section parameter a_value # Delete a var crudini --del config_file section parameter # Delete a section crudini --del config_file section # output a value crudini --get config_file section parameter # output a global value not in a section crudini --get config_file "" parameter # output a section crudini --get config_file section # output a section, parseable by shell eval "$( crudini --get --format=sh config_file section)" # update an ini file from shell variable(s) echo name="$name" | crudini --merge config_file section # merge an ini file from another ini crudini --merge config_file < another.ini # compare two ini files using standard UNIX text processing diff <( crudini --get --format=lines file1.ini|sort) <( crudini --get --format=lines file2.ini|sort) # Rewrite ini file to use name=value format rather than name = value crudini --ini-options=nospace --set config_file "" # Add/Update a var, ensuring complete file in name=value format crudini --ini-options=nospace --set config_file section parameter value # Rewrite ini file to ensure a single blank line between sections, # and no leading or trailing blank lines crudini --ini-options=sectionspace --set config_file "" # Read indented ini file, like .gitconfig crudini --ini-options=ignoreindent --format=lines --get ~/.gitconfig">

# Add/Update a var
  crudini --set config_file section parameter value

# Add/Update a var in the root or global area.
# I.e. that's not under a [section].
  crudini --set config_file "" parameter value

# Update an existing var
  crudini --set --existing config_file section parameter value

# Add/Update/Delete multiple variables atomically
  crudini --set config_file section parameter1 value 
          --set config_file section parameter2 value 
          --del config_file section parameter3

# Get multiple items from stdin
  env | crudini --get - '' USER --get - '' SHELL

# Add/Append a value to a comma separated list
# Note any whitespace around commas is ignored
  crudini --set --list config_file section parameter a_value

# Add/Append a value to a whitespace separated list
# Note multiline lists are supported (as newline is whitespace)
  crudini --set --list --list-sep= config_file section parameter a_value

# Delete a var
  crudini --del config_file section parameter

# Delete a section
  crudini --del config_file section

# output a value
  crudini --get config_file section parameter

# output a global value not in a section
  crudini --get config_file "" parameter

# output a section
  crudini --get config_file section

# output a section, parseable by shell
  eval "$( crudini --get --format=sh config_file section)"

# update an ini file from shell variable(s)
  echo name="$name" | crudini --merge config_file section

# merge an ini file from another ini
  crudini --merge config_file < another.ini

# compare two ini files using standard UNIX text processing
  diff <( crudini --get --format=lines file1.ini|sort) 
       <( crudini --get --format=lines file2.ini|sort)

# Rewrite ini file to use name=value format rather than name = value
  crudini --ini-options=nospace --set config_file ""

# Add/Update a var, ensuring complete file in name=value format
  crudini --ini-options=nospace --set config_file section parameter value

# Rewrite ini file to ensure a single blank line between sections,
# and no leading or trailing blank lines
  crudini --ini-options=sectionspace --set config_file ""

# Read indented ini file, like .gitconfig
  crudini --ini-options=ignoreindent --format=lines --get ~/.gitconfig

安装

在窗户上,请确保安装了Python解释器。例如,从https://www.py*t*h*on.org/downloads/安装将使PY Launcher和Pip进入路径。

然后,通过从“ CMD”提示下运行以下内容来确保安装Iniparse模块:

 pip install iniparse

然后crudini可以通过仅下载crudini .py文件并像以下方式运行:

 py crudini .py --help

在Linux Systems上, crudini通常可以从您的标准软件包管理器中获得,并且安装还将确保在系统上适当安装Iniparse依据。您还可以直接下载并运行单个crudini .py文件以使用最新版本。

在任何系统上,您都应该能够在GitHub上安装最新代码,例如:

 pip install git+https://**githu*b.com/pixelb/crudini.git#egg= crudini
下载源码

通过命令行克隆项目:

git clone https://github.com/pixelb/crudini.git