以下を参考に実施。そうかーsedだけだとあかんのかー。
改行をカンマ区切りにする | クロジカ
何かの出力結果のデータ整形で使ったり。 ``` cat sometext | tr '\n' ',' | se
置換方法
元データ:hoge.txt
以下の文言の改行をカンマにしたかった。
TITLE: bashのシェルスクリプト内でオプションを解析する
PATH: 5457403.html
コマンド
以下のコマンドで対応可能。sedじゃなくてtrで置換するわけですな。
% cat hoge.txt | tr '\n' ',' | sed -e 's/,$/\n/g'
TITLE: bashのシェルスクリプト内でオプションを解析する,PATH: 5457403.html
ほんならsedいらんやん、とならず、trが必要だった理由
trで改行すると、最終行の暗黙の改行まで置換されるため、sedで末尾のカンマを改行に再置換している。
面倒くさい。。。。
% cat hoge.txt | tr '\n' ','
TITLE: bashのシェルスクリプト内でオプションを解析する,PATH: 5457403.html,←末尾に余分なカンマが生成される
生成された末尾のカンマを正規表現[,$]で改行に置換
% cat hoge.txt | tr '\n' ',' | sed -e 's/,$/\n/g'
TITLE: bashのシェルスクリプト内でオプションを解析する,PATH: 5457403.html ←カンマが消えたことを確認
以上、備忘録。
Amazon.co.jp
コメント