Delete first column of csv file [duplicate]

2020-07-14 05:27发布

问题:

I would like to know how i can delete the first column of a csv file with awk or sed

Something like this :

FIRST,SECOND,THIRD

To something like that

SECOND,THIRD

Thanks in advance

回答1:

Following awk will be helping you in same.

awk '{sub(/[^,]*/,"");sub(/,/,"")} 1'   Input_file

Following sed may also help you in same.

sed 's/\([^,]*\),\(.*\)/\2/'  Input_file

Explanation:

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.


回答2:

With Sed

sed -i -r 's@^\w+,@@g' test.csv

Grab the begin of the line ^, every character class [A-Za-z0-9] and also underscore until we found comma and replace with nothing. Adding g after delimiters you can do a global substitution.



回答3:

Using awk

$awk -F, -v OFS=, '{$1=$2; $2=$3; NF--;}1' file
SECOND,THIRD


回答4:

Using sed : ^[^,]+, regex represent the first column including the first comma. ^ means start of the line, [^,]+, means anything one or more times but a comma sign followed by a comma.

you can use -i with sed to make changes in file if needed.

sed -r 's/^[^,]+,//' input
SECOND,THIRD