0
我是sed
的新手,你能告訴我以下幾點嗎?我無法從下面的命令中找到完整的正則表達式。瞭解一個Sed腳本如何分解成單個命令
sed -e ':a;N;$!ba;s/>[[:space:]]*\n/>\\\n/g' nlTest1.txt > nlTest2.txt
難道我們有3個命令在一起嗎?
:a;N;$!ba;s
>[[:space:]]*\n
>\\\n/g
,或者說我正確intrepreting命令。
我是sed
的新手,你能告訴我以下幾點嗎?我無法從下面的命令中找到完整的正則表達式。瞭解一個Sed腳本如何分解成單個命令
sed -e ':a;N;$!ba;s/>[[:space:]]*\n/>\\\n/g' nlTest1.txt > nlTest2.txt
難道我們有3個命令在一起嗎?
:a;N;$!ba;s
>[[:space:]]*\n
>\\\n/g
,或者說我正確intrepreting命令。
的命令的劃分是:
:a;N;$!ba
,這是用於讀取整個輸入文件到圖案空間中的常見的成語(緩衝操作上)一次,在一個循環;它由3 - 分隔;
命令:
:a
(定義了可以跳轉到的腳本位置)N
(讀取下一行,並將其追加到圖案空間)$! ba
,分支(b
)標記a
其中,如果輸入線不是(!
)的最後($
)之一。s/>[[:space:]]*\n/>\\\n/g
是在形式s/<regex>/<substitution-string>/
常規s
函數調用;在這裏,所有出現的>
後跟任何一個空格後跟一個換行符都會被替換爲>\
和一個換行符。