2

I am trying to collect lines from a file with the specific word host: for example the word host, I need to get output of all names of hosts. This is my file:

host= mx,rt,fd,rt,wed,asd, \ fm, jklf,dfd,dfd host = jd,er,ew,yu,tg,ed,ik,cs,\ fd, gr, jy host = mz,fg,jh 

I am using :

$grep -i host filename | awk '{print $2}'

only works for the first line , it does not output any name after \

so the output is;

 mx,rt,fd,rt,wed,asd, \ jd,er,ew,yu,tg,ed,ik,cs,\ mz,fg,jh 

as you see I am not getting rest of the line after \

I don't want to get rid of \ I would like to keep it, I can move it and connect all names, so it will be seen as one_line , but I don't want to do that.

Any idea , it is appreciated, it could be easy , but I can make it work, even when I use tr.

1
  • 3
    Show what your input is and what output you want. The fact that nobody responds is that you should rephrase your question. Commented Feb 27, 2017 at 20:45

2 Answers 2

4

You could do:

 sed ' # delete all but lines starting with host= (allowing blanks) /^[[:blank:]]*host[[:blank:]]*=[[:blank:]]*/!d # remove that host= part s/// :1 /\\$/{ # if the line ends in \, append the next line and loop N;b1 }' 
0
-1

Give this a shot awk '{gsub("host","");gsub("=","");print;}' filename

awk remove the host and = and then just print each line.

2
  • It's standard awk (awk '{print;}'). Just try it. I already did. Commented Feb 27, 2017 at 21:38
  • awk '{gsub("host","");gsub("=","");print;}' filename____ this Worked Thank you, it is very appreciated Commented Feb 27, 2017 at 22:28

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.