在指定模式(逗号)后剪切一个字符串

时间:2016-04-01 16:55:20

标签: shell unix cut

我想剪切一个字符串,并在第一次出现逗号后将其分配给变量。

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

预期输出:

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

当我使用命令

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

我只获得b作为输出。

3 个答案:

答案 0 :(得分:1)

在-f2的末尾添加短划线' - '将输出字符串的剩余部分。

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

b,c,d,e,f,g

答案 1 :(得分:1)

使用参数展开而不是cut

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

${my_string#*,}代表“删除所有内容,包括my_string中的第一个逗号”(请参阅​​Bash manual)。

答案 2 :(得分:0)

您必须在要查找的位置后添加减号( - )。

a=`echo $my_string|cut -d "," -f 2-`
  回复$ a
  B,C,d,E,F