Unix 如何使用GREP或SED从文件中获取特殊字符的不同列表?
我有一个文件,其中包含大约30000条以“|”分隔的记录。我只需要从文件中获取特殊字符的不同列表 例如: 123 | fasdf |%df&| pap,来了|! 234%^&asdf | 34 |'”:| 我的输出应该是: |%&,!^': 任何帮助都将不胜感激。 谢谢 维尔拉 您必须在括号内列出所有特殊字符 这将返回其自身行中的每个唯一特殊字符。如果确实需要包含这些字符的字符串,则必须在之后删除换行符,例如:Unix 如何使用GREP或SED从文件中获取特殊字符的不同列表?,unix,find,grep,special-characters,Unix,Find,Grep,Special Characters,我有一个文件,其中包含大约30000条以“|”分隔的记录。我只需要从文件中获取特殊字符的不同列表 例如: 123 | fasdf |%df&| pap,来了|! 234%^&asdf | 34 |'”:| 我的输出应该是: |%&,!^': 任何帮助都将不胜感激。 谢谢 维尔拉 您必须在括号内列出所有特殊字符 这将返回其自身行中的每个唯一特殊字符。如果确实需要包含这些字符的字符串,则必须在之后删除换行符,例如: 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'
您必须在括号内列出所有特殊字符
这将返回其自身行中的每个唯一特殊字符。如果确实需要包含这些字符的字符串,则必须在之后删除换行符,例如:
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….
替换为cat文件名
输出
!"%&',:^||
您可以将第一行
echo….
替换为cat fileName
您定义的“特殊”字符是什么?您定义的“特殊”字符是什么?谢谢您的回复。我不知道我将在文件中得到哪些特殊字符。我只想打印除0-9、a-z和a-z以外的所有字符。谢谢回复。我不知道我将在文件中得到哪些特殊字符。我只想打印除0-9、a-z和a-z以外的所有字符。您的输出不清晰(两个竖条),但我想您不希望它清晰。@Diing_sphynx:我一直忘了末尾的print
将打印最后的$0。我已经修复了我的解决方案,感谢您的反馈和好运。您的输出不是不同的(两个竖条),但我想我不希望它是不同的。@Diing_sphynx:我一直忘了,结尾的打印
将打印最后的$0。我已经修复了我的解决方案,感谢您的反馈,祝您好运。