Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

AWKのOFS変数を設定すれば、要素間の区切り文字を設定できる

AWKの要素間の区切り文字はデフォでは空白文字です。
これを設定するのがOFS変数です。

実際のところ

各要素を"***¥n"で区切りたい場合を考えてみましょう。
前回のものをベースにする場合、OFSの部分を以下のように追加します。

BEGIN {OFS="***\n"; FS="</item>\n"; RS=""} {print $1, $2, $3 }

このawkファイルを実行すると

<item>
<title>がん患者 5年相対生存率は64%</title>
<link>http://news.yahoo.co.jp/pickup/6174371</link>
<pubDate>Mon, 14 Sep 2015 20:59:18 +0900</pubDate>
<guid isPermaLink="false">yahoo/news/topics/6174371</guid>
***
<item>
<title>太陽電池の集光 紙細工で進化</title>
<link>http://news.yahoo.co.jp/pickup/6174339</link>
<pubDate>Mon, 14 Sep 2015 15:19:55 +0900</pubDate>
<enclosure length="133" url="http://i.yimg.jp/images/icon/photo.gif" type="image/gif">
</enclosure>
<guid isPermaLink="false">yahoo/news/topics/6174339</guid>
***
<item>
<title>睡眠薬 規制強化も処方減らず</title>
<link>http://news.yahoo.co.jp/pickup/6174238</link>
<pubDate>Sun, 13 Sep 2015 15:37:37 +0900</pubDate>
<guid isPermaLink="false">yahoo/news/topics/6174238</guid>

と、ちゃんと"***"で区切られた文字列ができました。