Я имитировать data.txt
файл с
datatxt="Line 1 without colon
I want this:the part before the colon
nope, not me
other line with colon:that can be found"
Ваша команда показывает первое поле всех линий
echo "${datatxt}" | cut -f 1 -d ":"
Line 1 without colon
I want this
nope, not me
other line with colon
Вы можете получить строки с :
при использовании grep
первый:
echo "${datatxt}" | grep ":" | cut -f 1 -d ":"
I want this
other line with colon
Вы можете добавить | head -1
для вывода одной строки.
Эти инструкции также могут быть выполнены с помощью sed
. С СЭД можно удалить все после двоеточия:
echo "${datatxt}" | sed 's/:.*//'
Line 1 without colon
I want this
nope, not me
other line with colon
В sed
добавления Grep может быть сделано путем поиска строк с /:/
.
Вы должны комбинировать это с -n
и p
.
echo "${datatxt}" | sed -n '/:/ s/:.*//p'
I want this
other line with colon
Если вы хотите, один линейный выход, вы можете использовать
echo "${datatxt}" | sed -n '/:/ s/:.*//p' | sed -n '1p'
# OR SHORTER
echo "${datatxt}" | sed -n '/:/ {s/:.*//p;q}'