如何使用GREP或SED从文件中获取不同的特殊字符列表



我有一个文件,其中包含大约30000条由"|"分隔的记录。我只需要从文件中获得一个特殊字符的不同列表。

例如:123|fasdf|%df&爸爸,来了!234 |%^&asdf|34|'":|

我的输出应该是:|%&,!^'":

如有任何帮助,我们将不胜感激。谢谢Velraj。

grep -o '[|%&,!^":]' input | sort -u

你必须在括号内列出你所有的特殊字符。

这将在其自己的行中返回每个唯一的特殊字符。如果你真的需要一个包含这些字符的字符串,你必须在之后删除换行符,例如:

grep -o '[|%&,!^":]' input | sort -u | tr -d 'n'

更新:

如果您需要删除所有不在"a-zA-Z0-9"集合中的字符,则可以使用以下字符:

grep -o '[^a-zA-Z0-9]' input | sort -u | tr -d 'n'
 echo "123|fasdf|%df&|pap,came|! 234|%^&asdf|34|'":|" 
 | { tr -d '[[:alnum:]]'; printf "n"; } 
 | sed 's/(.)/1_/g' 
 | awk -v 'RS=_' '{print $0}' 
 | sort -u 
 | awk '{printf $0}END{printf "n"}'

输出

!"%&',:^||

您可以用cat fileName 替换第一行echo ....

相关内容

  • 没有找到相关文章

最新更新