Regex 使用sed从文本文件中删除项目符号
我有一个很大的文本文件,其中一些行以一个项目符号•)开头。我想把那些拿走。我试过了Regex 使用sed从文本文件中删除项目符号,regex,bash,sed,Regex,Bash,Sed,我有一个很大的文本文件,其中一些行以一个项目符号•)开头。我想把那些拿走。我试过了 sed 's/\u2022//g' filename.txt 但这和子弹不匹配。我还尝试将子弹粘贴到sed命令中,但也没有成功 E:输出 sed --version 是 E2:如果这有助于找出如何捕获项目符号字符,那么它们最初是在Access中添加的 E3:正如评论中所建议的 echo -n '•' | hexdump -C 返回 00000000 95
sed 's/\u2022//g' filename.txt
但这和子弹不匹配。我还尝试将子弹粘贴到sed命令中,但也没有成功
E:输出
sed --version
是
E2:如果这有助于找出如何捕获项目符号字符,那么它们最初是在Access中添加的
E3:正如评论中所建议的
echo -n '•' | hexdump -C
返回
00000000 95 |.|
00000001
这是我的工作命令:
# Force paste the bullet into the command line
sed 's/^•//g' filename.txt
如果不起作用,请尝试使用echo转义:
同样,您也可以使用printf进行转义:
sed 's/^'"$(printf '\u2022')"'//g' filename.txt
这是我的工作命令:
# Force paste the bullet into the command line
sed 's/^•//g' filename.txt
如果不起作用,请尝试使用echo转义:
同样,您也可以使用printf进行转义:
sed 's/^'"$(printf '\u2022')"'//g' filename.txt
我建议GNU sed:
sed 's/\x95//g' file
我建议GNU sed:
sed 's/\x95//g' file
sed似乎不理解\u序列。
根据用户手册,它应该与POSIX.2BRE兼容,我认为它应该可以工作,但它不能
您可以尝试捕获我使用hextump-C获得的十六进制序列
或者,您也可以强制bash解析它。只需在字符串前添加$
sed $'s/\u2022//g' filename.txt
sed似乎不理解\u序列。
根据用户手册,它应该与POSIX.2BRE兼容,我认为它应该可以工作,但它不能
您可以尝试捕获我使用hextump-C获得的十六进制序列
或者,您也可以强制bash解析它。只需在字符串前添加$
sed $'s/\u2022//g' filename.txt
您可以尝试这样做:sed s/$echo-ne'\u2022'//g file1,从这里:您可以简单地复制并粘贴sed上的项目符号吗?这在过去对我很有效。echo abc•xyz | sed's/•//g'?@MatiasBarrios我曾尝试直接从文件中复制和粘贴子弹,但它也无法以这种方式捕获子弹。@Cyrus sed's/\x95//g'解决了我的问题。非常感谢你!您可以尝试这样做:sed s/$echo-ne'\u2022'//g file1,从这里:您可以简单地复制并粘贴sed上的项目符号吗?这在过去对我很有效。echo abc•xyz | sed's/•//g'?@MatiasBarrios我曾尝试直接从文件中复制和粘贴子弹,但它也无法以这种方式捕获子弹。@Cyrus sed's/\x95//g'解决了我的问题。非常感谢你!printf'\u2022'可能是首选。@PesaThe我一直在使用echo-ne。这是一个可移植性问题-echo-ne将在不同的盒子上做不同的事情,而printf在任何地方都会表现相同。printf'\u2022'可能是首选。@PesaThe我一直在使用echo-ne。这是一个可移植性问题-echo-ne将做不同的事情在不同的框上,而printf在任何地方的行为都相同。