https://www.gnu.org/software/gawk/manual/gawk.htmlawk '{print $0}' marks.txt
セクション1.1.2入力ファイルなしでawkを実行することに基づいて、これはechoのように動作することがわかります。それは戻ってくる
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
次のコードも期待どおりに機能します。
awk '{print $0}' marks.txt | awk '{print $2 "\t" $3 "\t"$4}'
awk '{$1=""; print $0}' marks.txt
私は今でもそれが直感的に理解できることを理解していません。
答え1
$1=""; print $0
印刷する前に最初のフィールドをクリアし、行全体を再計算します。この内容は次のように記録されます。地域を変えるGAWKマニュアルのセクション:
フィールド値が変更されると(認識されているように
awk
)、以前のフィールドがあった新しいフィールドを含むように入力レコードのテキストが再計算されます。つまり、$0
変更されたフィールドを反映するように変更します。
これは、GNU拡張ではなくAWKのすべての実装に当てはまります。AWKプログラミング言語この動作は次のように説明されます。
これは重要です。割り当てまたは置き換えると、等が
$0
変更され、再計算されます。同様に、などのいずれかが変更されると、区切りフィールドを使用して書き換えられます。$1
$2
NF
$1
$2
$0
OFS