Как использовать cut для печати только одной строки вывода команды? - PullRequest
0 голосов
/ 05 декабря 2018

Я написал сценарий оболочки для тестирования, который выглядит следующим образом:

#!/bin/sh 
echo 'line 1\n line2\n line3'

Я пытаюсь напечатать только одну строку, используя команду cut, например:

echo $(./myScript.sh | cut -d$'\n' -f1)

В приведенном выше примере я намерен напечатать 'line1'.Замена -f1 на -f2 привела бы к выводу «line2» вместо этого, или я так думал.

Вместо этого мой вывод выглядит так:

line1 line2 line3

Аналогично, если я изменю разделительот $ '\ n' до чего-то другого, например:

echo $(./myScript.sh | cut -d'e' -f1)

Вывод становится:

lin lin lin

Таким образом, кажется, что он печатает первое поле перед любыми разделителями для каждая строка вместо всего вывода myScript.sh в целом.Как я могу заставить команду cut работать на всю строку вместо каждой отдельной строки?Кроме того, какая другая команда может работать лучше для этой цели?

Спасибо!

1 Ответ

0 голосов
/ 05 декабря 2018

Я нашел способ сделать это так:

echo $(./myScript.sh | head -1)              # for the first line
echo $(./myScript.sh | head -2 | tail -1)    # for the second line
echo $(./myScript.sh | head -3 | tail -1)    # for the third line
...