use*_*970 7 sed awk utilities text-processing tr
AFAICsed和AFAIC 都是awk通用文本处理实用程序,用户可以使用它们获得非常相似的结果,但语法略有不同:
通过两者,用户可以添加、替换/翻译和删除文件中的内容。
这两个通用文本处理实用程序和tr文本处理实用程序之间的主要区别是什么?
我假设tr's 的功能包含在两者中sed,awk因此它只是缩小到将一个字符串替换为另一个字符串的特定上下文,但我不确定我在这里是否准确或将其翻译为另一个。
是的,tr是一个“简单”的工具相比,awk和sed,两者awk并sed可以很容易地模仿最基本的行为,但没有的sed或awk已经“tr建成”,在这个意义上,有在他们一些单件事究竟做了所有的事情那tr确实。
tr处理字符,而不是字符串,并将字符从一组转换为另一组中的字符(如转换tr 'A-Z' 'a-z'为小写输入)。它的名字是“translate”或“transliterate”的缩写。
它确实有一些不错的特性,比如能够删除多个相同的连续字符,用单个sed表达式实现可能有点繁琐。
例如,
tr -s '\n'
Run Code Online (Sandbox Code Playgroud)
将输入中的所有连续换行符压缩为单个换行符。
粗略地描述这三个工具:
tr 适用于字符(更改或删除它们)。sed 在行上工作(修改单词或行的其他部分,或插入或删除行)。awk处理带有字段的记录(默认情况下,一行中的空格分隔字段,但这可以通过设置FS和进行更改RS)。ÿ /字符串1 /字符串2 /
将string1 中所有出现的字符替换为string2 中的相应字符。
$ echo 'a big cat' | sed -e 'y/abc/def/'
d eig fdt
Run Code Online (Sandbox Code Playgroud)
y不支持字符范围a-z或类[:alpha:] 喜欢tr做,也没有补充的模式-c和-C。-d可以使用删除 ( ),也可以s//使用单个字符 ( -s)替换运行。就像所有内容一样,sed它基本上是面向行的。y有时在较长的sed脚本中间很有用,但tr如果您只做这些,可能会做得更好。
awk没有等效于tr的基本功能,尽管您当然可以一次替换一个字符。awk 语言非常通用,如果您有足够的动力,您可以编写足以实现您想要的任何转换的循环和条件。如果你更有动力,你也可以做到这sed一点。这些工具在任何意义上都不是真正等效的。
| 归档时间: |
|
| 查看次数: |
9949 次 |
| 最近记录: |