Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
470 views
in Technique[技术] by (71.8m points)

linux - Print Field 'N' to End of Line

I would like to have help or direction on a problem I have in awk.

I have a tab-delimited file with more than 5 fields. I want to output the fields excluding the first 5 fields.

Could you please tell how to write an awk script to accomplish this task?

Best, jianfeng.mao

Do Note the following kind comment:

There are many fields in my files. Different lines have a different number of fields. The number of fields per line is not standard.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

In my tab delimited file temp.txt it looks like the following

field1 field2 field3 field4 field5 field6
field1 field2 field3 field4 field5 field6 field7
field1 field2 field3 field4 field5 field6 field7 field 8

As per your update, I strongly recommend using cut:

cut -f6- temp.txt

will print field6 to end of line.

Note -d specifies the delimiter, but tab is the default delimiter. You can do this in awk, but I find cut to be simpler.

With awk it would look like this:

 awk '{print substr($0, index($0, $6))}' temp.txt

if my tab delimited file temp.txt looks like the following

field1 field2 field3 field4 field5 field6
field1 field2 field3 field4 field5 field6 field7
field1 field2 field3 field4 field5 field6 field7 field 8

awk -F"" '{print $6}' temp.txt

will print only the 6th field. if the delimiter is tab it will likely work without setting -F, but I like to set my field-separator when I can.

similarly so too would cut.

cut -f6 temp.txt

I have a hunch your question is a bit more complicated then this, so if you respond to my comment I can try and expand on my answer.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...