Shell

如何通過參數去除字元?

  • March 14, 2022

我想通過某些命令過濾輸出中的任何逗號和任何雙引號。對於一些條目。

虛擬碼:

removechar --any -, -"

目前輸出可能看起來像這些中的任何一個

“痛

”“痛”“痛

期望的輸出:

網頁

點擊

計數器

更新

我可能還需要刪除任何多餘的空白字元,例如:

a, b" 

會變成

ab

問題

如何通過參數去除字元?

你可以使用tr

<input tr -d ',"' >output

或者,刪除逗號和引號字元壓縮相鄰空格(如您所需的輸出所示)

<input tr -d ',"' | tr -s ' ' >output

或更一般地,刪除所有標點符號並擠壓所有水平空格

<input tr -d '[:punct:]' | tr -s '[:blank:]' >output

您將需要研究sed和非常基本的正則表達式。

sed  's/[, \'"´`]//g'

有語法

sed  's/[, \'"´`]//g'
     ^-------------- s like search&replace
      ^------------- the thing we want to search for and what we 
                     replace it with are separated by /
       ^-------^---- [] in a regular expression means
                     "any of the things in these []"
        ^^^^^^^----- in this case, the things to replace are commas,
                     spaces, single quotes, double quotes, slanted
                     quotes
                ^--- next thing is what we replace it with
                 ^-- we replace with nothing
                  ^- g is an option that means
                     "repeat until you're done on each line"

引用自:https://unix.stackexchange.com/questions/694345