Justin Lund
Justin Lund

Reputation: 321

Apply awk to everything except for first line

I'm looking to apply some awk processing to add the word "OR" to the beginning of each line, except for the first line. However, I'd still like the first line to print out.

Currently, I'm using the current command:

awk '$0="OR "$0' file.txt

This will give me the following output:

OR line1
OR line2
OR line3 etc

How can I get it so that it spits out the following?:

line1
OR line2
OR line3 etc

Upvotes: 3

Views: 962

Answers (5)

RavinderSingh13
RavinderSingh13

Reputation: 133518

Adding one more approach here, written and tested with shown samples in GNU awk.

awk '{print val $0; val="OR "}' Input_file

With shown samples, output will be as follows.

line1
OR line2
OR line3
OR line4

Upvotes: 1

karakfa
karakfa

Reputation: 67497

sed solution

$ sed '2,$s/^/OR /' file

starting second line insert "OR " at the beginning of each line.

Upvotes: 2

stack0114106
stack0114106

Reputation: 8711

Another awk

$ cat justin.dat
line1
line2
line3
line4
$ awk ' { printf("%s%s\n",sep,$0); sep="OR " } ' justin.dat
line1
OR line2
OR line3
OR line4
$

Upvotes: 1

blochsphere
blochsphere

Reputation: 101

awk 'NR==1 {print} NR>1 {print "OR "$0}'

Upvotes: 2

anubhava
anubhava

Reputation: 785146

You may use this awk:

awk 'NR > 1 {$0 = "OR " $0} 1' file

line1
OR line2
OR line3

Here NR > 1 condition will execute action block i.e. $0 = "OR " $0 for 2nd record onwards only but 1 will print all the rows.

Upvotes: 3

Related Questions