我试图简单地打印列,$4然后$NF打印以下数据:
000 0 00 NUL '\0' (null character) 100 64 40 @
001 1 01 SOH (start of heading) 101 65 41 A
002 2 02 STX (start of text) 102 66 42 B
003 3 03 ETX (end of text) 103 67 43 C
004 4 04 EOT (end of transmission) 104 68 44 D
005 5 05 ENQ (enquiry) 105 69 45 E
006 6 06 ACK (acknowledge) 106 70 46 F
007 7 07 BEL '\a' (bell) 107 71 47 G
010 8 08 BS '\b' (backspace) 110 72 48 H
Run Code Online (Sandbox Code Playgroud)
这样我就得到:
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
@
A
B
C
D
E
F
G
H
Run Code Online (Sandbox Code Playgroud)
其中awk等待第一个操作完成然后执行下一列的打印输出。
我试过:
awk '{print $4} {print $NF}'
Run Code Online (Sandbox Code Playgroud)
但这显然只是一个接一个地打印它们并将它们全部混合在一起。
我正在努力更好地理解awk并搞乱,请耐心等待。
AFAIK,您需要存储这些$NF值并将它们打印在一个END块中
awk '{a[NR] = $NF; print $4} END{for(i=1;i<=NR;i++) print a[i]}' file
Run Code Online (Sandbox Code Playgroud)
或对文件进行两次遍历
awk 'NR==FNR {print $4; next} {print $NF}' file file
Run Code Online (Sandbox Code Playgroud)