我有一个文件,其中字段用双引号封装 - 文件的一般示例:
"Internal ID", "External ID", "Name"
"123", "ABC", "ABC Incorporated"
期望的结果,删除第一列并使用相同的名称保存文件:
"External ID", "Name"
"ABC", "ABC Incorporated"
上面的sed可以修改为处理“,”分隔符吗?如果是这样,怎么样?还是有更好的选择吗?仍然是一个贝壳菜鸟但我尝试了以下但没有成功:
sed -i 's/[^'\"','\"']*,//' file.csv
非常感谢任何帮助。
答案 0 :(得分:2)
你可以试试下面的sed命令,
$ sed 's/^.*\(".*", ".*"\)$/\1/' file
"External ID", "Name"
"ABC", "ABC Incorporated"
打印最后两个值。
$ sed 's/^"[^"]*", //' file
"External ID", "Name"
"ABC", "ABC Incorporated"
它删除逗号分隔字符串中的第一个值。
答案 1 :(得分:0)
快捷方式:
sed 's/[^,]*,\s*//' file
"External ID", "Name"
"ABC", "ABC Incorporated"
请注意,如果您的字段包含逗号"ABC,DEF","ABC Incor.."
答案 2 :(得分:0)
这是cut
的工作。
cut -d, -f 2- < file.csv
使用shell重命名输出。或者在sed edit file in place使用名为inline
的脚本,并调用cut:
inline file.csv cut -d, -f 2-
答案 3 :(得分:0)
使用Awk:
awk -F", " '{print substr($0, index($0,$2))}' file > tmp && mv tmp file