linux - 从制表符分隔的文件中获取值

标签 linux awk cut csv

我有一个制表符分隔的文件。如果值包含制表符,它们将包含在 " 中。因此示例记录将如下所示:

firstfield  secondfield thirdfield
firstfield  "second field   with    tab"    thirdfield
firstfield  secondfield thirdfield

是否可以编写一个 cut/awk one liner 来处理这种情况?例如,我想获取第二列和第三列。

最佳答案

正如@fedorqui 评论的那样,对于此任务,有比 gawk 更好的工具,检查 FPAT无论如何都是可变的。

一个快速的 perl 解决方案。

perl -F'(\w+|"[^"]+")' -ane 'print $F[3]." ".$F[5]."\n"' file 

关于linux - 从制表符分隔的文件中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37385431/

相关文章:

c# - 此站点无法提供来自 dotnet linux 的安全连接 asp.net core

linux - 如何转义 sed 输入文件

linux - 有人可以提供 "lsof"命令的替代方法吗

linux - 如何在具有 AWK 语句的 bash 脚本中使用 --enable-switch

linux - 在 SLURM sbatch 脚本中使用 Bash 变量

linux - 如何在 shell 脚本中使用 cut 删除多个文件的扩展名?

cut - 如何从命令 "uniq"中删除输出的前导空格?

shell - 使用 shell 命令提取版本

windows - X11/Cocoa 自定义外观?

awk - passwd 文件中的所有用户 ID 尚未使用且在特定范围内