С POSIX sed вы можете сделать как:
sed -ne '/three/!d;:a;n;p;ba' inp.file
Использование Perl:
perl -lne 'print if 1 <(/three/...eof)' inp.file
Использованиеsed
:
$ sed -n '2s/,.*//p' <<<"$var"
aaa
особенно если вы читаете из большого файла, хорошо установить точку останова после того, как ваша команда перейдет ко второй строке.
$ sed -n '2{s/,.*//p;q;}' infile
это позволит q
избежать последующей обработки входного файла.
echo "XXXX YY ZZZZZZZ
aaa,bbb,ccc" | awk -F, '{print $1}'
XXXX YY ZZZZZZZ
aaa