我有一个用 3 个管道 (|||) 分隔的文件。例如名称|||网址|||日期|||金额|||
我正在尝试做两件事
提取另一个文件中的特定列,例如 - 新文件中要分隔的数量(它是文件中的第四列)
将所有 3 个管道替换为逗号,因此新文件看起来像 - name,url,date,amount,
我想用 3 个管道替换逗号,因为我的数据之间也有单个管道字符。
我已经尝试过 - awk -F '[\|]'+ '{print $4}' temp.csv > temp1.csv。但这会提取数据中是否存在单个管道。
预先感谢拉胡尔
答案1
用作[|]{3}
字段分隔符从原始数据中提取特定字段:
$ awk -F '[|]{3}' '{ print $4 }' input.csv
要使用正则表达式作为字段分隔符需要 GNU awk
。
要将全部替换|||
为逗号:
$ sed 's/|||/,/g' input.csv >output.csv
答案2
这应该可以解决提取三重管道分隔数据的第四个字段的问题:
sed 's/|||/,/g' /path/to/input | awk -F, '{print $4}'