特定の単語ホスト(たとえば、ホストという単語)を含むファイルから行を収集しようとしていますが、すべてのホスト名の出力を取得する必要があります。これは私のファイルです:
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
私は以下を使用しています:
$ grep -iホストファイル名| awk '{print $2}'
最初の行でのみ動作し、\ 以降は名前は出力されません。
したがって、出力は次のようになります。
mx,rt,fd,rt,wed,asd, \
jd,er,ew,yu,tg,ed,ik,cs,\
mz,fg,jh
ご覧のとおり、次の行の残りの部分を取得できません。
\を削除したくないまま維持したいです。移動してすべての名前を連結して1行で処理することができますが、そうしたくありません。
どんなアイデアにも感謝します。簡単かもしれませんが、trを使用しても機能させることができます。
ベストアンサー1
次のことができます。
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
}'