使用awk打印第二个字段

ish

我有以下输入文件,希望每隔两个字段打印一次:

A=1=B=2=C=3

要获得以下输出:

1 2 3 

我努力了:

awk 'BEGIN {FS="="; OFS=" "} {for (i=2; i<=NF; i+=2); print ($i) }' input_file

显然不起作用。我认为我的for循环部分正确,但是我的打印部分出了点问题。

谢谢。

约翰1024
$ awk -v RS== -v ORS=" " '0==NR%2' input_file
1 2 3

怎么运行的

  • -v RS==

    将输入记录分隔符设置为=

  • -v ORS=" "

    将输出记录分隔符设置为空格。

  • 0==NR%2

    打印每隔一行。

    NR是行号。NR%2是模2的行号。因此,0==NR%2每隔一行就满足该条件当条件为真时,将执行操作。由于未指定任何操作,因此将执行默认操作,即打印记录。

另类

原始代码中的关键问题是分号放置错误。考虑:

for (i=2; i<=NF; i+=2); print ($i)

在这种情况下,print命令时才执行for循环退出。

尝试:

$ 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 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用AWS SSM命令中传递的awk过滤器打印第二个字段

找到第二个字段的差异,使用第一个字段报告(awk)

awk查找两个文件中第二个字段之间的差异

从第二个字段打印大多数重复的数字

用sed或awk替换第二个字段输出

MongoDb - 使用 deleteOne 时是否需要第二个字段的索引

使用第二个字段订购具有相同日期的记录

无法使用end()获取地图的第二个字段

从数据集中过滤第二个字段,然后在输出中使用uniq

第二个堆栈使用 GList 打印空白

有没有办法使用 awk 总结单个标识符的第二个字段并用非数字替换输出?

使用jQuery根据第一个选择列表选项显示第二个字段

使用递归的方法来打印字符串与第二个字符删除

可以使用 JAVA 用相同的变量打印第二个字符串 sq 吗?

无法使用Selenium WebDriver从应用程序第二个字段的自动填充值中选择值

使用一个字段降序然后升至第二个字段对数据进行排序?

awk打印文件的倒数第二个记录

无法访问JavaScript中2维数组中的第二个字段

*和!是什么意思 在/ etc / shadow的第二个字段?

按相反的顺序对第二个字段排序合并的文件

在第二个字段中删除CSV中包含特定模式的行

分割文件第n行的第二个字段

按C中第二个字段对结构数组排序

正则表达式截断以空格分隔的第二个字段

添加第二个字段类别Prestashop 1.7

MongoDB If 条件作为 gt 中的第二个字段

从git log输出中替换文件中的第二个字段

剪切以空格分隔的第二个字段

在/ etc / group中,第二个字段的含义是什么?