以下は、解析中のCSVファイルの行pfデータの例です。
"Monday, July 3, 2023 at 9:12:34 PM GMT+0:00","Answer 1","Answer 2","Answer 3"
", 2023 at 9:12:34 PM GMT+0:00" 部分を削除しようとしているので、次のようになります。
"Monday, July 3","Answer 1","Answer 2","Answer 3"
CSVファイルの各行のタイムスタンプデータは異なる値なので、単にハードコードすることはできません。
このコマンドを実行すると、ファイルに何も起こりません。理由はわかりませんが、
sed -i 's/, 2023[","]/","/g' example.csv
何か単純なものを見落としているような感じがする。
答え1
[","]
一致する一つ"
または、またはに,
一致する文字です"
。
マッチしたいかもしれません注文する文字ではなく、"
nullに置き換えられます。したがって(常に-i
最初にテストしないでください)
sed -i 's/, 2023[^"]*//' example.csv
ただし、CSV形式を理解するツールの使用を検討することもできます。たとえば、次のようになります。ミラー
mlr --csv -N --quote-all put '$1 = sub($1,", 2023.*", "")' example.csv
答え2
使用sed
$ sed -i.bak 's/,[^,]*"/"/' input_file
"Monday, July 3","Answer 1","Answer 2","Answer 3"