Bash: 如何用sed去除除字母和数字以外的所有字符?
Bash: How to use sed to remove all characters except letters and numbers?
首先,我还在学习正则表达式,我用谷歌搜索了这个但还是不行。
如何删除带有 sed
的变量中除字母和数字以外的所有字符?例如我有这个文本文件:
MytextOnly !@#!text@@32423#@$text#%$#text%#t23432ext342%^-_+-=-_++_;:"'][}}{|\/
如何只显示字母和数字?
您可以使用:
sed 's/[^[:alnum:]]\+//g' file
MytextOnlytext32423texttextt23432ext32342
[^[:alnum:]]
属性 将查找所有非字母数字字符。
编辑: 基于以下评论:
sed 's~[^[:alnum:]/]\+~~g' file
MytextOnlytext32423texttextt23432ext32342/
使用grep
grep -o '[[:alnum:]]' file
同意,没有完美的输出,但一切都在那里
使用tr
$ tr -d -c '[:alnum:]' < file
MytextOnlytext32423texttextt23432ext32342
如果您还想保留正斜杠:
$ tr -d -c '[:alnum:]/' < file
MytextOnlytext32423texttextt23432ext32342/
有关 python 的解决方案,请参阅
首先,我还在学习正则表达式,我用谷歌搜索了这个但还是不行。
如何删除带有 sed
的变量中除字母和数字以外的所有字符?例如我有这个文本文件:
MytextOnly !@#!text@@32423#@$text#%$#text%#t23432ext342%^-_+-=-_++_;:"'][}}{|\/
如何只显示字母和数字?
您可以使用:
sed 's/[^[:alnum:]]\+//g' file
MytextOnlytext32423texttextt23432ext32342
[^[:alnum:]]
属性 将查找所有非字母数字字符。
编辑: 基于以下评论:
sed 's~[^[:alnum:]/]\+~~g' file
MytextOnlytext32423texttextt23432ext32342/
使用grep
grep -o '[[:alnum:]]' file
同意,没有完美的输出,但一切都在那里
使用tr
$ tr -d -c '[:alnum:]' < file
MytextOnlytext32423texttextt23432ext32342
如果您还想保留正斜杠:
$ tr -d -c '[:alnum:]/' < file
MytextOnlytext32423texttextt23432ext32342/
有关 python 的解决方案,请参阅