Unix 如何从文件中删除以某些单词开头的行
我的文件扩展名是CSV,文件在unix服务器中的格式如下 “产品包装图”10302017.csv、“451”、“2017-10-30 05:02:26” “目标设定_10302017.csv”、“13”、“2017-10-30 05:02:26”, “目标选择”\u 10302017.csv、“42”、“2017-10-30 05:02:27”Unix 如何从文件中删除以某些单词开头的行,unix,sed,grep,Unix,Sed,Grep,我的文件扩展名是CSV,文件在unix服务器中的格式如下 “产品包装图”10302017.csv、“451”、“2017-10-30 05:02:26” “目标设定_10302017.csv”、“13”、“2017-10-30 05:02:26”, “目标选择”\u 10302017.csv、“42”、“2017-10-30 05:02:27” 我想根据filename关键字删除特定行。您可以使用grep-v: grep -v '^"Product_Package_Map_10302017.cs
我想根据filename关键字删除特定行。您可以使用
grep-v
:
grep -v '^"Product_Package_Map_10302017.csv"' file > file.filtered
与行开头的字符串“^”Product\u Package\u Map\u 10302017.csv”
“Product\u Package\u Map\u 10302017.csv”匹配
sed
可以就地执行:
sed -i '/^"Product_Package_Map_10302017.csv"/d' file
有关其他备选方案,请参见本相关帖子:
- 请参见此。基于grep的答案将是我的第一选择,但是,正如你所看到的,有很多方法可以解决这个问题
(可能刚刚发表了评论,但我的“rep”还不够高)你说的“filename关键字”是什么意思?你试过什么?我的意思是“产品”\u包装”\u地图”\u 10302017.csv“和ITargeting”\u 10302017.csv“像Wises一样,这可以删除同一文件中的特定行。而不是创建新文件?