[英]Fix formatting of && operator with sed
我正在嘗試編寫一個 sed 命令,在 && (AND) 運算符的任一側添加一個空格。 這是我到目前為止:
sed -E 's+(\&\&)|(\s*\&\&\s*)+ & +g test.c
&& 周圍沒有空格的第一個條件有效,所以
if(numberIn==0&&char=='g')
變成
if(numberIn==0 && char=='g')
但是 1 個或多個空格的第二個條件不起作用。 所以這
if(numberIn==0 && char=='g')
不會改變。
\\s*OPERATOR\\s*
的模式與其他二元運算符一起使用,所以我不確定為什么它不適用於 and 運算符。 我是否遺漏了在 and 運算符上使用 sed 的內容? 在第一個條件下,我注意到如果你用“&&”替換它,你實際上會得到“&& &&”,這就是為什么替換模式是“&”。 (這不是 OR 或 EQUALS 運算符的情況)。
任何提示將不勝感激。
&
在 sed 替換中表示“插入匹配的字符串”。
使用\\&
插入文字與符號:
$ echo 'foo && bar' | sed -E 's+(\&\&)|(\s*\&\&\s*)+ \&\& +g'
foo && bar
PS:獲取像clang-format這樣格式化的真實代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.