首页 > 解决方案 > 我们如何使用 '~|~' 分隔符来使用脚本命令分割记录?

问题描述

请建议我如何拆分用~|~分隔符分隔的列。(文件:abc.dat)

a~|~1~|~x
b~|~1~|~y
c~|~2~|~z

我正在尝试使用 awk 命令,但输出计数为 0。

awk -F'~|~' '$2 == 1' ${file} | wc -l

标签: shellawkdelimiter

解决方案


使用您显示的示例,请尝试以下操作。我们不需要与wccommand 一起使用awk,它可以在其内部完成awk

awk -F'~\\|~' '$2 == 1{count++} END{print count}' "$file"

说明:将字段分隔符设置为~|~(此处转义|)。然后检查第二个字段是否为1,然后用 1 增加变量计数。在END这个程序的块中打印它的值。

要将值保存到 shell 变量中,请使用:

var=$(awk -F'~\\|~' '$2 == 1{count++} END{print count}' "$file")

推荐阅读