12

いくつかのテキストファイルがあります。各テキストファイルの最初の行の前に空白行を追加したいと思います。どうすればawkでこれを行うことができますか?

4

5 に答える 5

15

GNU sed私はこのタスクを好みます:

ファイルの先頭にスペースを追加するには:

sed '1s/.*/ &/' file.txt

拡張子が付いた複数のテキストファイルでこれを実行し.txt、ファイルに直接変更を加える(つまり、ファイルを上書きする)には、次のことを試してください。

sed -s -i '1s/.*/ &/' *.txt

ファイルの先頭に空白行を追加するには:

sed '1i\\' file.txt

拡張子が付いた複数のテキストファイルでこれを実行し.txt、ファイルに直接変更を加える(つまり、ファイルを上書きする)には、次のことを試してください。

sed -s -i '1i\\' *.txt
于 2012-09-30T04:48:21.953 に答える
5

これにより、データファイルの先頭に空白が表示されます。

 awk 'BEGIN{printf(" ")}1' data.txt

または、データファイルの先頭に空白行が表示されます。

 awk 'BEGIN{print""}1' data.txt
于 2012-09-30T04:26:55.957 に答える
3

の必要はありませんawk

echo -n ' ' | cat - file
于 2012-09-30T04:31:21.810 に答える
1

これはうまくいくはずです-

awk 'NR==1{a=$0; print ""; next} NR==2{print a; print $0; next}1' file

複数のファイルの場合-

awk 'FNR==1{a=$0; print ""; next} FNR==2{print a; print $0; next}1' file1 file2 file3
于 2012-09-30T04:24:38.220 に答える
0

perlとインラインで実行します。

perl -i -ne 'if(eof){$.=0;}if($.==1){print "\n";}print' temp temp2

tempとtemp2は2つの異なるファイルです。このコマンドを実行すると、各ファイルの先頭に空白行が自動的に追加されます。

于 2012-10-01T06:56:26.550 に答える