我有一个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"