Если ваш файл выглядит примерно так (с вкладкой в качестве разделителя):
1st-field 2nd-field
, вы можете использовать cut
для извлечения первого поля (по умолчанию работает на вкладке):
$ cut -f1 input
1st-field
Если вы используете awk
, нет необходимости использовать tail
для получения последней строки, изменив ввод на:
1:1st-field 2nd-field
2:1st-field 2nd-field
3:1st-field 2nd-field
4:1st-field 2nd-field
5:1st-field 2nd-field
6:1st-field 2nd-field
7:1st-field 2nd-field
8:1st-field 2nd-field
9:1st-field 2nd-field
10:1st-field 2nd-field
Решение с использованием awk:
$ awk 'END {print $1}' input
10:1st-field
Чистый bash-решение:
#!/bin/bash
while read a b;do last=$a; done < input
echo $last
вывод:
$ ./tab.sh
10:1st-field
Наконец, решение с использованием sed
$ sed '$s/\(^[^\t]*\).*$/\1/' input
10:1st-field
здесь, $
- оператор дальности;т. е. работать только с последней строкой.
Для исходного вопроса используйте буквенную вкладку, например,
x="1st-field 2nd-field"
echo ${x% *}
вывод:
1st-field