我有一列单词,其中英文单词粘在中文单词上,如下所示:
鄙弃********
痛恨*************
(星星代表汉字)
我想写一个脚本来分隔英文单词并将其放在另一个文件中。这样的事情可以通过脚本编写实现吗?
欢迎任何建议。
答案1
当然,由于英语单词使用拉丁字母,而汉语单词不使用拉丁字母,因此只需删除从第一个非拉丁符号开始的行尾即可。
sed 's/[^a-zA-Z ].*//' < source-file > result-file
答案2
简单地删除除空格、制表符或英文字符之外的每个字符:
sed 's/[^a-zA-Z ]//g' <source >result
请注意使用兼容 unicode 的模式。
您也可以进行进一步的后处理,例如
for i in $(cat result);do echo "$i";done|sort|uniq
将按result
字母顺序排序并删除重复项(“the”、“a”和“for”在本文中可能会出现很多次,您可能只需要其中一个)。
答案3
grep -Po '[\x00-\x77]+' source > justEN.txt