csv
異なる長さの行を持つファイルがあります。しかし、すべて一対の中かっこで囲まれた数字で終わります。例えば、
........{5}
........{16}
たとえば、数字と中括弧を削除したり、二重引用符で置き換えたいとします。結果は次のとおりです。
........
........
または
........"
........"
固定長があるか、行の末尾に同じ文字列がある行の解決策のみが見つかりました。
どんなアイデアがありますか?
答え1
削除するにはGNUを使用してくださいsed
。
sed 's/{[0-9]\+}$//' file.csv
標準同等:
sed 's/{[0-9]\{1,\}}$//' file.csv
または:
sed 's/{[0-9][0-9]*}$//' file.csv
削除の代わりに交換するには、//
次のように交換してください。/"/
"
答え2
{..}
このGNU sedコマンドを使用して、最後のコマンドを二重引用符で置き換えます。
sed -r 's/^(.*)\{.*\}$/\1"/g' file
例:
$ cat file
........{5}
........{16}
avhjjk{23}
$ sed -r 's/^(.*)\{.*\}$/\1"/g' file
........"
........"
avhjjk"
通過しawk
、
$ awk '{gsub (/{.*}$/,"\""); print}' file
........"
........"
avhjjk"