Shell-Script
在具有特定行長的行的中間和末尾插入字元
目前我正在處理一個文件文件夾,每個文件都有如下幾行:
abcde fghij abcde fghij jklmn pqrst ..... .....
這些行有一個特定的行長 43。每行的中間是一個製表符,最後是 windows 換行符
^M
。我想做以下步驟:First, select these lines with line length 43 Second, replace the tab in the middle with a comma Third, replace the line break character at the end with a dot.
預期的輸出應該是這樣的:
abcde, fghij. abcde, fghij. jklmn, pqrst.
我嘗試
sth
如下,但我失敗了:sed -i -e 's/^.\{43\}\r/ ./g' input.file
有誰知道如何處理這個?
更新您可以點擊此連結獲取測試文件。
試試這個:
sed -ne '/^.\{43\}$/s/\t/, /g;/^.\{44\}$/s/\r/./gp' input.file > new.file
或者如果你在 mac os 上:
sed -ne $'/^.\{43\}$/s/\t/, /g;/^.\{44\}$/s/\r/./gp' input.file > new.file
我在逗號後添加了一個空格以匹配預期的輸出。這就是為什麼第二個匹配是 44 個字元而不是 43 個字元的原因。