2017-08-10 70 views
-1

我正在嘗試縮進以4個空格開頭的文本文件中的行。文本文件中以數字開頭的縮進行

我已經試過這個命令,這個工程,但如何將縮進線開始的數字只。

sed 's/^/  /' somefile 

我試過了上面的命令,但它縮進了一切。

回答

3

您可以添加過濾器來選擇以數字開始只有線條,s///命令之前 寫:

sed -e '/^[0-9]/s/^/ /' somefile 

根據您的意見,您的輸入來自的cat -n輸出, 其打印行編號,但行不是以數字開始,但在左側有空格填充。 如果你想縮進行零個或多個空格,然後然後你需要調整過濾器。 這簡直是將*(空間和*)的問題:

sed -e '/^ *[0-9]/s/^/ /' somefile 
+0

這似乎沒有任何作用 –

+0

它似乎可以工作,但沒有編號的文件 - 示例已發佈在我的原始問題中。我有一個用cat -n文件創建的文件> fileout –

+0

sed -e'/^[0-9]/s/^//'output13 = works - 1在0-9之前的空格 –

0

您可以嘗試通過四個空格來代替一些之前的任何空格或製表符,就像這樣:

sed 's/^[ \t]*\([0-9]\+.*\)/ \1/' file 

而且因爲你的文件是cat -n輸出,你真的沒有檢查一些,因爲所有線路都將開始與多家無論如何,所以這可能工作,以及:

sed 's/^[ \t]*\(.*\)/ \1/' 
相關問題