簡體   English   中英

使用 sed 修復 && 運算符的格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM