私はcrudiniを使ってiniファイルにセクションとパラメータを追加して削除しています。 crudiniを実行した後、ファイルに余分な空白行が残りましたが、各セクションが1つの空白行に分かれるように整理したいと思います。次の関数のgrepコマンドは機能しますが、出力をファイルにリダイレクトしようとすると、結果として空のファイルが生成されます。
パスワード
sctn="Section Two"
mypath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
my_ini=$mypath/test.ini
ini_sec=$sctn
function inidel () {
crudini --del --verbose $my_ini "$ini_sec"
grep -A1 . $my_ini | grep -v "^--$"
}
function iniadd () {
crudini --set --verbose $my_ini "$ini_sec"
grep -A1 . $my_ini | grep -v "^--$"
}
データテスト.ini
1| [Section One]
2| Parameter1=x1
3| Parameter2=example1
4| Parameter3=one
5|
6| [Section Two]
7| Parameter1=x2
8| Parameter2=example2
9| Parameter3=two
10|
11| [Section Three]
12| Parameter1=x3
13| Parameter2=example3
14| Parameter3=three
15|
> $my_ini
grepコマンドの後に試してみました。実際に何をしているのかはよくわかりませんが、私の推測では、各行の最後の空行の結果を書くようです。これを使用すると>> $my_ini
正しく書き込まれますが、テキストを上書きするのではなくテキストを追加します。
ベストアンサー1
二重矢印(>>)はファイルにデータを追加するために使用されます。
ファイルを上書きするには、単一の矢印(>)を使用します。