私のディレクトリにいくつかのファイルがあります。 .dllを使用してファイルの上部と末尾にいくつかの行を追加したいと思いますawk
。
例: 私のawk
コマンド:
awk 'BEGIN { print "line1\nline2" } { print $0 } END { print "line3\nline4" }' file |tee file
line1
上記のコマンドを使用すると、上部&末尾に&を追加できます。line2
line3
line4
file
今、ディレクトリにあるすべてのファイルに対して同じことをしたいと思います。
私が使用している場合:
awk 'BEGIN { print "line1\nline2" } { print $0 } END { print "line3\nline4" }' *
すると端末画面に出力が表示されますが、すべてのファイルにリダイレクトまたは上書きすることはできません。。
だから私は次を試しました(To find
+ awk
)。
find -type f -exec awk 'BEGIN { print "line1\nline2" } { print $0 } END { print "line3\nline4" }' '{}' \;
上記のコマンドを使用して、画面に出力を印刷できます。ファイルの上書き、
以下を試しましたが(でfind
++awk
上書きtee
)、エラーが発生しました。
$ find -type f -exec awk 'BEGIN { print "line1\nline2" } { print $0 } END { print "line3\nline4" }' '{}' | tee '{}' \;
find: missing argument to `-exec'
では、どのように使用しますか?awk
到着書く(例:AND|tee
など)すべてのファイルについてコマンドを介して現在のディレクトリにありますか?
ベストアンサー1
awk
GNU 4.1以降の使用:
find . -type f -exec awk '
@load "inplace"
BEGINFILE {
inplace_begin(FILENAME, "")
print "line1\nline2"
}
{print}
ENDFILE {
print "line3\nline4"
inplace_end(FILENAME, "")
}' {} +