-1
我有一个csv文件,其中3列用','分隔符分隔。在数据中有一些值,我想删除整个记录。建议如果我可以使用sed/awk,grep命令来做到这一点。从unix中的csv文件中删除带有额外分隔符的行
输入文件:
- 监视器,显示器,45
- 键盘,输入,20
- 响亮,扬声器,输出20
- 安装,输入,20
预期产出:
- 监视器,显示器,45
- 键盘,输入,20
- 安装,输入,20
我有一个csv文件,其中3列用','分隔符分隔。在数据中有一些值,我想删除整个记录。建议如果我可以使用sed/awk,grep命令来做到这一点。从unix中的csv文件中删除带有额外分隔符的行
输入文件:
预期产出:
我用grep命令过滤掉额外逗号行。
grep -v '.*,.*,.*,.*' input_file > output_file.
下面是如何使用AWK做同样的,基本上你想在其中恰好有3场
$ awk -F, 'NF==3 {print $0}' data1.txt
monitor,display,45
keyboard,input,20
mount,input,20
你尝试什么记录? – npinti
使用正则表达式可以更容易地提取有效的东西,而不是擦除不正确的东西。例如,在PHP中,可以使用'preg_match_all()'使用该正则表达式'/(?:(?:\ w +,){2} \ w +)/ m'来提取数组中的所有有效行并迭代该数组将数据推回到新文件中。仍然在PHP中,如果在获取数据后关闭初始连接,则可以覆盖CSV文件。 –