noober
noober

Reputation: 1505

unix cut to extract column from text file and save rest of the contents to a new file

I can do the following using unix cut :

cut -f 1 myfile.out

Output:

6DKK463WXXK
VKFQ9PYP9CG

Since its printing out the column that I want to extract. How do I create the a new file without this column? In other words, I want to remove this column now and keep the rest of the content.

Upvotes: 0

Views: 766

Answers (2)

shellter
shellter

Reputation: 37258

Gdang! S.O. must be swamped right now.

This is very easy in awk

 echo "1 2 3    4 5" | awk -F" " '{sub(/[^ ]+ /,""); print}'

output

2 3    4 5

Deletes everything upto the first space character. The the remaining record is printed.

IHTH

Upvotes: 0

Joseph Myers
Joseph Myers

Reputation: 6552

Depending on your version of Unix, you may use the negate option to select the fields not listed.

cut -f 2 --complement myfile.input > myfile.output

That will place all the columns from the input file into the output file, except for column 2.

You use the -d argument to specify a delimiter other than tab, which is the default.

Note from experience: Be careful with the > especially when using similar names for input and output so that you don't accidentally overwrite your input file (using tab completion, this is easy to do).

Example:

% echo one two three | cut -d ' ' -f 2 --complement
> one three

Upvotes: 2

Related Questions