首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除其中包含特殊字符的行

问如何删除其中包含特殊字符的行
EN

Stack Overflow用户
提问于 2011-10-29 12:38:11
回答 7查看 1.1K关注 0票数 3

我有一个很大的文本文件,其中包含许多特殊字符,如"$!@%#$/“以及更多字符,如果文本文件中有任何特殊字符,我希望将该行删除。我只想保留A-Z和a-z字符。

如果这就是文件..。

代码语言:javascript
复制
!Somejunk)(^%
)%(&_
this
my_file
is
*(%%$
the
they're
file

那唯一剩下的就是...

代码语言:javascript
复制
this
is
the
file

使用linux命令行工具或bash脚本或python脚本的解决方案会更好,但任何可行的解决方案都可以!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-10-29 12:44:43

如果您只想保留包含字母字符的行(就像OP请求的那样),那么:

代码语言:javascript
复制
$ grep -v '[^a-zA-Z]' foo

或者,如果您只想要英文字符:

代码语言:javascript
复制
$ grep -v '[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]' foo

但是,如果您只想删除非字母字符,sed将完成此工作:

代码语言:javascript
复制
$ cat foo | sed 's/[^a-zA-Z]//g'

或者,如果您只想删除二进制的、不可打印的数据,可以使用字符串:

代码语言:javascript
复制
$ strings foo
票数 1
EN

Stack Overflow用户

发布于 2011-10-29 12:42:38

代码语言:javascript
复制
$ grep '^[[:alpha:]]\+$' << EOF
> !Somejunk)(^%
> )%(&_
> this
> my_file
> is
> *(%%$
> the
> they're
> file
> EOF
this
is
the
file
票数 8
EN

Stack Overflow用户

发布于 2011-10-29 14:38:22

这似乎起作用了:

代码语言:javascript
复制
 sed '/[^[:alpha:]]/d' source_file
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7937042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档