2016-07-12 9 views
0

存在する場合にのみフィルタを適用することをあなたはこの:AWK:フィールドセパレータが、私は驚くべき

エコー「こんにちは」| awk -F '|' '{$ 1印刷;}'

をあなたが得る:

ハロー与えられた何も返さない方法

そのフィールドセパレータ '|'行には欠けている?

ログ行の先頭に日付を抽出するには、これを行いますが、一部の行は日付で始まっていないので、この問題が発生します。ありがとう、私はawkでかなり新しいです。

+0

[XY問題](http://xyproblem.info/)の例です。質問を編集して簡潔でテスト可能なサンプル入力と期待される出力を含めてください。 –

答えて

1

あなたが複数のフィールドを持っている場合のみ、この

echo "hello" | awk -F'|' 'NF>1 {print $1}' 

echo "hello|1" | awk -F'|' 'NF>1 {print $1}' 
hello 

を行うことができ、あなたが使用することができ、

cat testing 
record1|val1 
record2|val2 
record3 
record4|val4 

awk -F'|' 'NF>1 {print $1}' testing 
record1 
record2 
record4 
+0

はい、これは私が欲しかったことです、ありがとう! –

1

また、ファイルには、第1フィールド

を返す

awk -F'|' '$1==$0' 

セパレータが存在しない場合、フィールド1には行全体が含まれます。

関連する問題