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
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. sub calls can be combined into one by sub(/[^,]*,/,"")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 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.
.* means greedy match so you are going to replace till last comma.