For loop 使用awk每秒打印一次字段
我有以下输入文件,希望每秒打印一个字段:For loop 使用awk每秒打印一次字段,for-loop,awk,For Loop,Awk,我有以下输入文件,希望每秒打印一个字段: A=1=B=2=C=3 要获得以下输出: 1 2 3 我试过: awk 'BEGIN {FS="="; OFS=" "} {for (i=2; i<=NF; i+=2); print ($i) }' input_file awk'BEGIN{FS=“=”OFS=“}{for(i=2;i 工作原理 -vrs== 将输入记录分隔符设置为= -v ORS=”“ 将输出记录分隔符设置为空格 0==NR%2 每隔一行打印一次 NR是行号。NR%2是
A=1=B=2=C=3
要获得以下输出:
1 2 3
我试过:
awk 'BEGIN {FS="="; OFS=" "} {for (i=2; i<=NF; i+=2); print ($i) }' input_file
awk'BEGIN{FS=“=”OFS=“}{for(i=2;i
工作原理
-vrs==
将输入记录分隔符设置为=
-v ORS=”“
将输出记录分隔符设置为空格
0==NR%2
每隔一行打印一次
NR
是行号。NR%2
是行号模2。因此,条件0==NR%2
每隔一行为真。当条件为真时,执行操作。由于未指定操作,因此执行默认操作,即打印记录
可供替代的
原始代码中的关键问题是分号放错了位置。请考虑:
for (i=2; i<=NF; i+=2); print ($i)
或者,如果希望在一行上输出:
$ awk 'BEGIN {FS="="} {for (i=2; i<=NF; i+=2)printf "%s ", $i; print "" }' input_file
1 2 3
$awk'BEGIN{FS=“=”}{for(i=2;iin-case)如果你想学习一些sed
:sed的/[:alpha:]=\([[:digit:]\)/\1/g'
$ awk 'BEGIN {FS="="; OFS=" "} {for (i=2; i<=NF; i+=2)print $i }' input_file
1
2
3
$ awk 'BEGIN {FS="="} {for (i=2; i<=NF; i+=2)printf "%s ", $i; print "" }' input_file
1 2 3