次のgrepコマンドをファイルに出力するにはどうすればよいですか?

次のgrepコマンドをファイルに出力するにはどうすればよいですか?

私は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_inigrepコマンドの後に試してみました。実際に何をしているのかはよくわかりませんが、私の推測では、各行の最後の空行の結果を書くようです。これを使用すると>> $my_ini正しく書き込まれますが、テキストを上書きするのではなくテキストを追加します。

ベストアンサー1

二重矢印(>>)はファイルにデータを追加するために使用されます。

ファイルを上書きするには、単一の矢印(>)を使用します。

おすすめ記事