フィルタリングしたいどのカンマとどのいくつかのコマンドの出力に二重引用符があります。一部のアイテムの場合。
擬似コード:
removechar --any -, -"
現在の出力は次のようになります。
lorem, ipsum "dolo,"
",,lorem,, ipsum ,,,"""dolo","
,lorem ipsum ,,, """dolo,
希望の出力:
ローレム イムスム ドロル ロレム イムスム
ドロル
修正する
余分な空白文字を削除する必要があります。たとえば、次のようになります。
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