Как удалить первую часть строки в bash?
Этот код даст первую часть, но как ее удалить и получить целую строку без первой части?
echo "first second third etc"|cut -d " " -f1
Ответы
Ответ 1
Вам следует взглянуть на info cut
, который объяснит, что означает f1
. Кроме того, здесь возникает один и тот же вопрос: question-7814205
На самом деле нам понадобятся поля после (и) второго поля. -f
сообщает команде выполнить поиск по полю, а 2-
означает второе и следующие поля.
echo "first second third etc" | cut -d " " -f2-
Ответ 2
Вы можете использовать удаление подстроки для этого, нет необходимости в внешних инструментах:
$ foo="a b c d"
$ echo "${foo#* }"
b c d
Ответ 3
Вы можете сделать:
echo "first second third etc" | cut -d " " -f2-
>> second third etc
Ответ 4
Попробуйте сделать это:
echo "first second third etc"|cut -d " " -f2-
Это объясняется в
man cut | less +/N-
N- из N'-байта, символа или поля, до конца строки
Насколько у вас есть bash, вы можете использовать bash расширение параметра следующим образом:
x="first second third etc"
echo ${x#* }
Ответ 5
Попробуйте следующее: -
echo "first second third etc"|cut -d " " -f2-