Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用sed从文本文件中删除项目符号_Regex_Bash_Sed - Fatal编程技术网

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在任何地方的行为都相同。