2016-04-01 13 views
1

文字列を切り取り、コンマが最初に出現した後に変数に代入したいとします。指定されたパターン(カンマ)の後に文字列を切り取る

my_string="a,b,c,d,e,f" 

期待出力:私はコマンド

output=`echo $my_string | cut -d ',' f2 

を使用する場合

output="b,c,d,e,f" 

私だけb出力としてを取得しています。

+0

[変数を引用してください](https://unix.stackexchange.com/questions/171346/security-implications-of-forgetting-to-quote-a-variable-in-bash-posix-shells) - 'エコー "$ my_string" | ... –

答えて

1

F $
B、C、D、Eを、エコー。パラメータ展開の代わりに、cut

$ echo "a,b,c,d,e,f,g"|cut -d, -f2- 

b,c,d,e,f,g 
+1

これは、 '-f'がフィールドの* ranges *を取ることができるためです。範囲の最後を指定しないと、範囲は最後のフィールドまで続きます。 –

0

あなたが探している位置の後にマイナス記号( - )を追加する必要があります。 ' - ' あなた-f2意志出力の末尾に文字列の残りの部分を

a=`echo $my_string|cut -d "," -f 2-` 

はダッシュを追加

1

$ my_string="a,b,c,d,e,f" 
$ output="${my_string#*,}" 
$ echo "$output" 
b,c,d,e,f 

${my_string#*,}は(Bash manualを参照してください) "へとmy_stringから最初のカンマまでを含むすべてのものを削除する" の略です。

関連する問題