如何在Bash中删除字符串的第一部分?

如何在Bash中删除字符串的第一部分?,bash,shell,Bash,Shell,这段代码将给出第一部分,但是如果没有第一部分,我如何删除它并获得整个字符串 echo "first second third etc"|cut -d " " -f1 您应该看看info cut,这将解释f1的含义 实际上,我们只需要第二个字段后面的字段-f告诉命令按字段进行搜索,2-表示第二个和后面的字段 echo "first second third etc" | cut -d " " -f2- 你可以做:

这段代码将给出第一部分,但是如果没有第一部分,我如何删除它并获得整个字符串

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

您应该看看
info cut
,这将解释
f1
的含义

实际上,我们只需要第二个字段后面的字段
-f
告诉命令按字段进行搜索,
2-
表示第二个和后面的字段

echo "first second third etc" | cut -d " " -f2-
你可以做:

echo "first second third etc" | cut -d " " -f2-
>> second third etc
尝试这样做:

echo "first second third etc" | cut -d " " -f2-
这一点在本书中有解释

 man cut | less +/N-
N-从第N个字节、字符或字段到行尾

就您所拥有的而言,您可以这样使用:

x="first second third etc"
echo ${x#* }
试试这个:

  echo "first second third etc" | cut -d " " -f2-
你可以用它。不需要任何外部工具:

$ foo="a b c d"
$ echo "${foo#* }"
b c d
可能重复: