Heim > Backend-Entwicklung > Python-Tutorial > Perl、Python、AWK、sed 之间有哪些区别?处理文本使用那种脚本语言比较好?理由是什么?

Perl、Python、AWK、sed 之间有哪些区别?处理文本使用那种脚本语言比较好?理由是什么?

WBOY
Freigeben: 2016-06-06 16:24:09
Original
1612 Leute haben es durchsucht

如果有其他的脚本语言,也请列举

回复内容:

  • sed - when you need to do simple text transforms on files.
  • awk - when you only need simple formatting and summarization or transformation of data.
  • perl - for almost any task, but especially when the task needs complex regular expressions.
  • python - for the same tasks that you could use Perl for.

这里回答很全了:stackoverflow.com/quest 在文本处理上AWK的能力是很强的,为了方便有可能你会把它和sed一起使用,因为利用sed可以很方便的使用正则,正则方面awk就弱了点,比如在处理文本时有可能你会先用sed进行初步处理,然后再使用awk就会降低逻辑复杂度。至于python也可以处理文本,不过要是处理的逻辑不是特别复杂,建议使用awk ,因为同一个复杂度的逻辑,python的代码量通常会很大。 awk的使用场合蛮有趣的,很多任务可以用awk来处理,比如今晚,我下了个字幕发现同时有中英文字幕,占屏幕很大块儿,然后一句话就可以去掉英文字幕:
gawk.exe "$0 !~ /^[a-zA-Z]/ {print $0}" 1.srt > 2.srt

:) Perl, Ruby, Python,按推荐指数降序,同时也是学习难度降序。简单的处理用 sed / awk。 处理文本别用Regex, Awk这些one-liner语言,老老实实用你最熟的泛用型语言,多步加工,用多个中间变量和多行处理最好,这样既容易理解又容易排错

那些one-liner除了看起来“紧凑”,真的是一无是处
如果没有掌握任何一个,那么都试试,哪个顺手,且身边有人可以请教,那就是最好的。

哪一个语言都可以干不少事了。
python什么都可以干。
awk主要在于统计数据和报表。
sed主要在于正则,但看着头晕。 Perl是文本处理的第一选择,想一行代替awk sed很容易,想写出可读性高的程序也很容易,看你怎么用,有些初学者瞎用perl导致4不像,perl是一种越用开发效率越高的语言,永python还不如用java 配groovy sed自己用的不多,主要用在批量替换里面
这地方有一个小技巧,sed不要用默认的/做分隔符,太麻烦了,一般我用#号,也可以用其他的字符,比如@之类的字符
sed -n "s#a#b#gp" 验证下是不是对的,
sed -i "s#a#b#g" 更改文件

明显的分列的输入数据,过滤,改变输出的格式,比如单独print一个字段,用awk方便一点

一般复杂一点的统计,比如涉及多行的统计之类的,都用python,也就3,4行

传说perl很强大,没用过。。。主要是自己正则不好,总觉得一串的正则像天书一样
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage