arrays - 查找定界符并打印第二个数组

标签 arrays bash awk split

我有这样的数据:

A=5 B=8 . C=8
A=4 . . C=4
A=8 . . C=3

我需要检查文件中的所有列,如果找到 letter=number(例如 A=5),我只需要打印 number。如果有缺失值 (.) 就跳过它。

所以输出应该是:

5 8 . 8
4 . . 4
8 . . 3

我会使用 awk:

awk -v OFS="\t" '{split($0,arr2,"="); print arr2[2]}' infile.txt

最佳答案

这个 awk 单行代码与 gawk 一起工作:

awk -F'\\S*=' -v OFS="" '{$1=$1}7' file
5 8 . 8
4 . . 4
8 . . 3

思路是:通过设置FS移除FOO=

关于arrays - 查找定界符并打印第二个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39701396/

相关文章:

arrays - Lisp 中如何返回子数组?

C++ 字符串到字符串数组的分隔符

Mysqldump 在 linux 上通过 cron 运行时创建空文件

perl - 如何在 Shell 脚本中自动执行作业以使用 Doxygen 生成 Latex 文件并输入命令 make pdf 来获取 pdf 文件?

awk - 在awk中使用填充将数字转换为字符串

linux - 如何(分别)查找所有目录和子目录的文件总和,并按大小对它们进行排序

jquery - JS int 数组到 MVC3 Controller

arrays - 结构体数组 : How to save in coredata?

bash - 仅在我之前的所有工作完成后才运行工作

linux - 如何用包含 Linux 文件中另一行(新目录路径)的变量替换一行(目录路径)?