20

这段代码将给出第一部分,但我怎样才能删除它并在没有第一部分的情况下获取整个字符串?

echo "first second third etc"|cut -d " " -f1
4

5 回答 5

38

你应该看看info cut,它会解释什么f1意思。

实际上,我们只需要(和)第二个字段之后的字段。-f告诉命令按字段搜索,2-表示第二个和后续字段。

echo "first second third etc" | cut -d " " -f2-
于 2012-12-09T14:15:34.170 回答
17

您可以为此使用子字符串删除。不需要外部工具:

$ foo="a b c d"
$ echo "${foo#* }"
b c d
于 2012-12-09T14:17:08.203 回答
7

你可以做:

echo "first second third etc" | cut -d " " -f2-
>> second third etc
于 2012-12-09T14:15:36.937 回答
3

尝试这样做:

echo "first second third etc" | cut -d " " -f2-

它解释在

 man cut | less +/N-

N- 从第 N 个字节、字符或字段到行尾

只要你有Bash 标签,你可以像这样使用Bash 参数扩展

x="first second third etc"
echo ${x#* }
于 2012-12-09T14:15:43.233 回答
1

试试这个:

  echo "first second third etc" | cut -d " " -f2-
于 2012-12-09T14:16:49.133 回答