GNU/Linux >> Linux の 問題 >  >> Linux

ファイルがまだ存在しない場合にのみファイルに行を追加する

シンプルにしてください:)

grep + エコー で十分です:

grep -qxF 'include "/configs/projectname.conf"' foo.bar || echo 'include "/configs/projectname.conf"' >> foo.bar
  • -q 静かにしてください
  • -x 行全体に一致
  • -F パターンはプレーンな文字列です
  • https://linux.die.net/man/1/grep

編集:@cerin および @thijs-wouters の提案を組み込み .


これを試してください:

grep -q '^option' file && sed -i 's/^option.*/option=value/' file || echo 'option=value' >> file

これは grep を使用したクリーンで読みやすく、再利用可能なソリューションになります。 そして echo ファイルがまだ存在しない場合にのみ、ファイルに行を追加するには:

LINE='include "/configs/projectname.conf"'
FILE='lighttpd.conf'
grep -qF -- "$LINE" "$FILE" || echo "$LINE" >> "$FILE"

行全体を一致させる必要がある場合は、grep -xqF を使用します

-s を追加 ファイルが存在しない場合にエラーを無視し、その行だけで新しいファイルを作成します。


Linux
  1. Thesqldumpでエラーが発生しない場合にのみGzipで圧縮するにはどうすればよいですか?

  2. 「#」または「;」で始まらない行をgrepする方法は?

  3. cron ジョブがまだ実行されていない場合にのみ実行する

  1. Python の open() は、ファイルが存在しない場合、ファイルを作成しません。

  2. GREPに数値のみを選択させる方法は?

  3. まだファイルにない場合にのみ、ファイルに行を追加します

  1. 画像を wget すると、画像ではなくファイルが返されるのはなぜですか?

  2. sed:見つかった場合は行を置き換えるか、見つからない場合はファイルの最後に追加する方法は?

  3. Linux - 特定の行からファイルの最後までの grep