问题描述
- 关于使用sed删除指定行的问题
-
业务需求,要写一个脚本定期收集目录下的文件
涉及到一个去重的功能
cat 1.txt
/date/file1/x
/date/file1/y
/date/file1/zj=/date/file1/x
sed "/$j/d" 1.txt
sed "/'$j'/d" 1.txt
如上 我想删除1.txt中 包含 /date/file/x的 行 ,使用上面的sed 命令都无法实现。 不知哪里不对。求指导!
解决方案
linux下使用sed 命令来删除指定行
sed在指定行上删除和添加字符
sed 删除文件中指定的行
----------------------
解决方案二:
首先 sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。
其实 / 是 sed的分割符号,因此如果匹配字符中包含 / 那么需要转义
所以,要删除包含 /date/file/x 的可以如下操作:
sed '//data/file/x/d' 1.txt
上述语句结果被打印到屏幕上,文件本身并未被修改!。如果需要修改文件那么可以用下面的语句
sed -i '//data/file/x/d' 1.txt
时间: 2024-11-10 00:11:14