2013-11-25 5 views
5

、例えばため、RHEL 5の値を分離しました

[root]# var="hi,hello how,are you,doing" 
[root]# echo $var 
hi,hello how,are you,doing 
[root]# echo $var|cut -d',' -f- --output-delimiter=$'\n' 
hi 
hello how 
are you 
doing 

しかし、私は、Solaris 10で同じコマンドを実行すると、残念ながら、それがすべてでは動作しません:(!

bash-3.00# var="hi,hello how,are you,doing" 
bash-3.00# echo $var 
hi,hello how,are you,doing 
bash-3.00# echo $var|cut -d',' -f- --output-delimiter=$'\n' 
cut: illegal option -- output-delimiter= 

usage: cut -b list [-n] [filename ...] 
     cut -c list [filename ...] 
     cut -f list [-d delim] [-s] [filename] 

私は「カット」のmanページをチェックしていないがある、悲しいかな「--output-区切り」そこに!

は、どのように私は(bashの)のSolaris 10でこれを達成していますか?私はawkが解決策になると思いますが、私は適切なオプションをフレームすることができませんでしだ。

注:コンマ別の変数に空白が含まれている可能性があります。

+0

RHEL上で同じ切断コマンドを実行する場合は、[GNU coreutils](https://www.gnu.org/software/coreutils/)パッケージをインストールします。 – alanc

答えて

7

この場合、trを使用するとどうなりますか?

$ tr ',' '\n' <<< "$var" 
hi 
hello how 
are you 
doing 

または

$ echo $var | tr ',' '\n' 
hi 
hello how 
are you 
doing 

$ sed 's/,/\n/g' <<< "$var" 
hi 
hello how 
are you 
doing 

またはと:

$ awk '1' RS=, <<< "$var" 
hi 
hello how 
are you 
doing 
+0

どういうわけか私は大きなダンボのように感じています!私は 'tr'や 'sed'を使ったことは考えていませんでした。... pfffttt .....ありがとうございました! hinhello hownare youndoing が、働いていた 'TR' のsed -eさん/、/ \ N/G '| – Marcos

+0

は、 のbash-3.00#エコーの$ VARを動作しませんでした 'のsed'! – Marcos

+0

私はSolarisサーバーをテストする必要はありませんが、おそらくhttp://stackoverflow.com/questions/8991275/escaping-newlines-in-sed-replacement-stringで手がかりを見つけることができます。そして、 'tr'を読んだ方が良いと思っていました:) – fedorqui

3

おそらく自身でそれを行いますか?

+0

答えがありがたいですが、もっと小さいものも好きです。 – Marcos

関連する問題

 関連する問題