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