/usr/bin/sed 's/,/\\n/g' comma-delimited.txt > newline-separated.txt
これは私にはうまくいきません。「、」を削除しただけですが、トークンが区切られていません。
古いバージョンの sed が必要なので、置換にリテラル LF 文字を入れる必要があります。
/usr/bin/sed 's/,/
/g' comma-delimited.txt > newline-separated.txt
LF をエスケープする必要があるかもしれないので、最後の文字 '\' の後に空白文字がないことを確認してください。
/usr/bin/sed 's/,/\
/g' comma-delimited.txt > newline-separated.txt
これが役立つことを願っています。
これはあなたのために働くかもしれません:
echo a,b,c,d,e | sed 'G;:a;s/,\(.*\(.\)\)/\2\1/;ta;s/.$//'
a
b
c
d
e
説明:
G
,
の最後の文字に置き換えます。つまり、\n
:a;s/,\(.*\(.\)\)/\2\1/;ta
s/.$//
私は次のことを試しましたが、不器用に見えますが、うまくいきます。わかりやすい。tr を使用して、プレースホルダー § の置換を行います。唯一の注意点は、プレースホルダーです。文字列に含まれていないものでなければなりません。
ps -fu $USER | grep java | grep DML| sed -e "s/ -/§ -/g" | tr "§" "\n"
コマンドラインのインデントされた出力が得られます。DML は単なるサーバー名です。
AIX7 では、回答 #3 はうまくいきました。段落の先頭に改行を挿入する必要があるため、grep -p を実行して、結果の「スタンザ」で「mksysb」をフィルタリングできます。/usr/bin/sed 's/^[a-zA-Z/\^J&/' (実際には、最初の行にはエスケープされた改行がありました: lsnim -l | /usr/bin/sed 's/^[a-zA -Z/\ &/') コマンドを思い出すと、^J 構文が表示されました ...