【发布时间】:2020-02-13 05:44:33
【问题描述】:
我想知道如何使用 awk 或 sed 删除 csv 文件的第一列
类似这样的:
FIRST,SECOND,THIRD
类似的事情
SECOND,THIRD
提前致谢
【问题讨论】:
我想知道如何使用 awk 或 sed 删除 csv 文件的第一列
类似这样的:
FIRST,SECOND,THIRD
类似的事情
SECOND,THIRD
提前致谢
【问题讨论】:
跟随 awk 将会帮助你。
awk '{sub(/[^,]*/,"");sub(/,/,"")} 1' Input_file
以下 sed 也可能对您有所帮助。
sed 's/\([^,]*\),\(.*\)/\2/' Input_file
解释:
awk ' ##Starting awk code here.
{
sub(/[^,]*/,"") ##Using sub for substituting everything till 1st occurence of comma(,) with NULL.
sub(/,/,"") ##Using sub for substituting comma with NULL in current line.
}
1 ##Mentioning 1 will print edited/non-edited lines here.
' Input_file ##Mentioning Input_file name here.
【讨论】:
sub调用可以被sub(/[^,]*,/,"")合并为一个
使用 awk
$awk -F, -v OFS=, '{$1=$2; $2=$3; NF--;}1' file
SECOND,THIRD
【讨论】:
使用 Sed
sed -i -r 's@^\w+,@@g' test.csv
抓住 ^ 行的开头,每个字符类 [A-Za-z0-9] 并下划线,直到我们找到逗号并替换为空。 在分隔符后添加 g 可以进行全局替换。
【讨论】:
.* 表示贪婪匹配,所以你要替换到最后一个逗号。
使用 sed : ^[^,]+, 正则表达式表示第一列,包括第一个逗号。 ^ 表示行首,[^,]+, 表示任何一次或多次,但逗号符号后跟逗号。
如果需要,您可以使用 -i 和 sed 在文件中进行更改。
sed -r 's/^[^,]+,//' input
SECOND,THIRD
【讨论】: