我的文件包含两行Unicode(可能)字符:
▒▒▒▒=
▒▒▒=
我希望从文件中删除这两行。
我搜索并发现我可以使用此命令删除非UTF-8字符:
iconv -c -f utf-8 -t ascii file
但它留下了这两行:
=
=
我无法找到如何删除匹配(不只是包含但匹配)某些短语的行,在我的情况下:=
。
更新:我发现当我将“=”行重定向到其他文件并打开文件时,它包含不需要的行:^ A = 我无法与sed匹配删除它。
答案 0 :(得分:1)
这可能适合你(GNU sed):
sed '/^\(\o342\o226\o222\)\+=/d' file
使用:
sed -n l file
要查找unicode字符的八进制表示,然后使用regexp中的\o...
元字符进行匹配。
编辑:
要删除仅包含=
的行:
sed '/^\(\o342\o226\o222\)\*=\s*$/d' file
答案 1 :(得分:-1)
以下是清除这些行的命令:
sed -i 's/^=$//g' your_file
如评论中所指定,您还可以使用grep -v '^whatever$' your_file > cleared_file
。请注意,此解决方案需要设置不同的输出(cleared_file),而sed
- 解决方案允许您“就地”修改内容。