Bashスクリプトでawkを使用してテキストファイルから値を読み取るときに空白行を印刷できない

Bashスクリプトでawkを使用してテキストファイルから値を読み取るときに空白行を印刷できない

awk私の台本で奇妙に振る舞います。テキストファイルから値を読み取ろうとします(file.txt以下を参照)。

awkスクリプトのスペースは無視されますが、awkデバッグスクリプトでステートメントのみをテストすると正しい出力が得られます。

これはfile.txt

cain
jon
chris

johny
anthony

jose

これは私のawk声明です:awk '{print $1}' file.txt

awk私のスクリプトにこのステートメントがあるときの出力は次のとおりです。

cain
jon
chris   
johny
anthony    
jose

awkテストスクリプトからそのステートメントを分離するときの出力は次のとおりです。

cain
jon
chris

johny
anthony

jose

区切り記号として使用してみましたが、\n同じ結果が得られました。

awk私のスクリプトの動作が孤立したスクリプトの動作と異なるのはなぜですか?

追加の説明が必要な場合はお知らせください。

ベストアンサー1

awk私の考えでは、これはスクリプト自体ではなくスクリプトのバグかもしれません。

awkRS二重改行文字が変数に設定されている場合、状況は次のようになります。

awk '{print $1}' RS='\n|\n\n' file

スクリプトが値を変更したことを確認する必要がありますRS

おすすめ記事