2016-04-04 7 views
1

私はawkを調べて、ファイルを二重に配置するために以下の2つのコマンドを見つけました。awkを使ってファイルを二重に配置する

誰かがこれらのコマンドが実際にどのように機能するか説明してください。

awk '1;{print ""}' filename 

awk 'BEGIN{ORS="\n\n"};1' filename 

おかげ

+0

2つのステートメントは実際に何をしますか?二重空間はどういう意味ですか?元のファイルが100Kbの場合、これを実行した後、200kbのファイルがありますか?この2つのステートメントは、1行改行を2つに変更するだけです。 – Kent

+1

2番目のコマンドは、 'awk -v ORS =" \ n \ n "1 filename"と同じように書くことができます。 –

答えて

3

あなたの最初の例では、2つの一般的なawkのショートカットを使用しています。1は常に真であるだけパターンなので、「行を印刷する」で、デフォルトのアクションは、すべての行に対して実行されます。次に、空のパターン(常に真ですが、パターンとアクションの両方を省略することはできません)を持つルールがあります。そのアクションでは空の行だけが出力されます。

あなたの第二の例は、単にすべての行をコピーすることは十分になるように、2であることが、通常は単一のend-of-lineであるR ECORD S eparator、utput Oを変更します。 (入力ファイルが読み込まれる前にBEGINルールが実行されます。)

関連する問題