[英]Understanding how a Sed script breaks down into individual commands
我是sed
新手,您能告訴我以下內容嗎? 我從下面的命令中找不到完整的正則表達式。
sed -e ':a;N;$!ba;s/>[[:space:]]*\\n/>\\\\\\n/g' nlTest1.txt > nlTest2.txt
我們在一起有3個命令嗎?
:a;N;$!ba;s
>[[:space:]]*\\n
>\\\\\\n/g
或者我沒有正確理解命令。
命令的分區為:
:a;N;$!ba
,這是一個常見的慣用法,用於將整個輸入文件循環一次讀取到模式空間(要操作的緩沖區)中; 它由3個組成;
-分隔的命令:
:a
(定義可以跳轉到的腳本位置) N
(讀取下一行並將其追加到模式空間) $! ba
$! ba
,如果輸入行不是( !
) 最后一行( $
),則分支( b
)以標記a
。 s/>[[:space:]]*\\n/>\\\\\\n/g
是形式為s/<regex>/<substitution-string>/
的常規s
函數調用; 在這里,所有>
后面出現的任何空格,再加上換行符的任何運行都被替換為>\\
和換行符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.