在CSV文件中搜索并使用命令行工具拆分每个匹配的行

时间:2015-10-09 15:53:12

标签: bash shell grep

我正在使用以下命令:

grep -F "searchterm" source.csv >> output.csv

source.csv中搜索匹配的字词。源文件中的每一行都是这样的:

value1,value2,value3|value4,value5

如何仅将字段value1,value2,value3插入输出文件?

2 个答案:

答案 0 :(得分:1)

您可以简单地使用awk逐行浏览,然后应用分隔符并从字符串中获取您想要的部分。

awk -F"|" '{print $1}' input.csv > output.csv

答案 1 :(得分:0)

您可以使用简单的while read循环执行此操作:

while read -r line; do echo ${line%|*}; done < file.csv >> newfile.csv

或在子shell中,因此每次都截断新文件:

( while read -r line; do echo ${line%|*}; done < file.csv ) > newfile.csv

sed

sed -e 's/[|].*$//' file.csv > newfile.csv