![](/img/trans.png)
[英]sed command to replace " with ' only in lines that doesn't match a pattern
[英]Two pattern match on same sed command
我有以下sed命令:
sed -n '/^out(/{n;p}' ${filename} | sed -n '/format/ s/.*format=//g; s/),$//gp; s/))$//gp'
我試圖做到這一點,如:
sed -n '/^out(/{n;}; /format/ s/.*format=//g; s/),$//gp; s/))$//gp' ${filename}
但這還會顯示我不想要的行(那些不匹配的行)。
我所擁有的是帶有一些字符串的文件,如:
entry(variable=value)),
format(variable=value)),
entry(variable=value)))
out(variable=value)),
format(variable=value)),
...
我只想要out輸入之后出現的格式行。 並刪除結尾的))或),
您可以使用以下sed命令:
sed -nr '/^out[(]/ {n ; s/.*[(]([^)]+)[)].*/\1/p}' your_file
一旦找到out
,它將前進到下一行( n
),並使用帶有p
標志的s
命令僅提取括號內的內容。
說明:
[(]
代替\\(
。放在方括號a (
通常是指分組,如果要使用文字(
,則需要將其轉義為\\(
或將其放在方括號內。大多數RE特殊字符在放入時不需要轉義內括號。 ([^)]+)
是指基團(以下簡稱“(”在這里被重新元字符不是字面括號),其由一個或多個(的+
)不屬於字符( ^
) )
(字面右括號),則^
反轉人物類[ ... ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.