shell - 我们如何使用 '~|~' 分隔符来使用脚本命令分割记录?
问题描述
请建议我如何拆分用~|~分隔符分隔的列。(文件:abc.dat)
a~|~1~|~x
b~|~1~|~y
c~|~2~|~z
我正在尝试使用 awk 命令,但输出计数为 0。
awk -F'~|~' '$2 == 1' ${file} | wc -l
解决方案
使用您显示的示例,请尝试以下操作。我们不需要与wc
command 一起使用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")
推荐阅读
- python - Django:触发下载后重定向到另一个页面
- apache - 我可以同时使用 Apache fallbackresource 和 rewrite 吗?
- javascript - 将被破坏对象的值大写
- web-crawler - Storm-Crawler 和 Apache Strom 2.xx
- python - python - 在相应列表中获取元组的第 i 个、第 j 个和第 k 个元素
- docker - InvoiceNinja 与 Docker-compose
- python - 以灵活的方式在python中实现Matlab结构
- matillion - 您可以在 Matillion 中创建 SQL 更新语句吗?
- javascript - 这个原型在类函数构造函数中吗?
- python - 如何将多个 JSON 从 API(如字典)保存到文件中,然后随机读取?在 Python 中