2016-12-03 95 views
-7

我搜索了很久,但我无法弄清楚这个sed实际上做了什么!?这个sed命令是做什么的?

sed -E $'s:$:\t:' < file1 | cut -f 2 > file2 

谁能解释我吗?

+0

你从哪里得到的? –

+3

不是搜索解决方案,而是搜索'sed'的文档并读取它。然后你就可以自己解释它......并且理解其他“sed”可以做的事情。 –

+0

FWIW,这是一个替换,它将制表符添加到每行的末尾。然后'切出第二个领域。 – andlrc

回答

1

这不是一个sed脚本,它是一个包含bash,sed和cut命令的shell脚本。 sed脚本被错误的引用做法混淆,不必要地更改分隔符,并添加不必要的参数。我假设你知道cut -f 2做了什么,所以我无法想象为什么你将这个问题包括进来,以进一步混淆你的问题,所以我将忽略它并专注于sed部分。

你的命令是:

sed -E $'s:$:\t:' 

让我们重写理智,你会得到:

sed 's/$/'$'\t''/' 

它没有'脚本分隔符,并增加了清晰一些额外的白色空间:

s/ $/$'\t'/

现在你看到它在做什么了吗?用制表符替换行结束符。

+1

所以最后它是非常简单的东西...谢谢你的回复:) –