2016-12-03 136 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

所以最後它是非常簡單的東西...謝謝你的回覆:) –