我要过滤任何逗号和任何某些命令的输出中的双引号。对于一些条目。
伪代码:
removechar --any -, -"
电流输出可能类似于以下任何一个
lorem, ipsum " 多洛 ,"
",,lorem,, ipsum ,,, """ 多洛 ","
,lorem ipsum ,,, """ 多洛 ,
期望的输出:
洛雷姆·伊普苏姆·多洛尔 洛雷姆·伊普苏姆·多洛尔 洛雷姆·伊普苏姆·
多洛尔
更新
我可能还需要删除任何多余的空白字符,例如:
a, b"
会变成
ab
问题
如何通过参数去除字符?
答案1
你可以使用tr
:
<input tr -d ',"' >output
或者,删除逗号和引号字符和挤压相邻的空间(如您想要的输出所示)
<input tr -d ',"' | tr -s ' ' >output
或者更一般地删除所有标点符号并挤压所有水平空白
<input tr -d '[:punct:]' | tr -s '[:blank:]' >output
答案2
您需要研究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"
答案3
类似的东西可以完成这项工作:
sed 's/"//g; s/,//g' input_file >output_file