использовать хвост в bash оболочке - PullRequest
0 голосов
/ 03 апреля 2020

у меня есть файл f1, содержащий x1, x2, x3, x4 каждый в новой строке, как показано на рисунке ниже. я хочу прочитать данный параметр п. если n = i, я хочу записать строки f1 в файл f2 с позиции i.

Пример, если n = 2, f2 будет содержать x2, x3, x4.

, если n = 3, тогда f2 будет содержать x3, x4.

Мой код ниже не работать отлично. Кто-нибудь знает, как это исправить, используя только команду tail

код:

t = $n-1
tail -n -$t  $F1 >> F2.txt  

F1_content

1 Ответ

0 голосов
/ 03 апреля 2020

Вы используете правильный вариант n | --lines.

Из хвоста Страница man

-n, --lines = [+] NUM выведите последние NUM строки вместо последних 10; или используйте -n + NUM для вывода, начиная со строки NUM

Таким образом, исходя из этого, вы должны предоставить опции допустимое значение, которое начинается с +, например:

n=3
t=$((n-1)) # arithmetic calc -> 2
tail --lines=+$t $F1 >> F2.txt  

Вывод tail --lines=+$t $F1 будет, например:

x2
x3
x4
...