Есть ли способ напечатать строки из файла от n до m и затем поменять их местами? - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь напечатать текст со строки 10 до 20, а затем изменить их положение.

Я пробовал это:

sed '10!G;h;$!d' file.txt

Но он печатает только с 10 до концафайла.Есть ли способ остановить его в строке 20, используя только одну команду sed?

Ответы [ 3 ]

3 голосов
/ 26 марта 2019

Почти там, вам просто нужно заменить $!d на номер строки "до"

sed -n '10,20p' tst.txt
// Prints line 10 <--> 20
sed -n '10!G;h;20p' tst.txt
// Prints REVERSE line 10 <--> 20

выход:

20
19
18
17
16
15
14
13
12
11
10

tst.txt:

1
2
3
4
...
19
20

информация

2 голосов
/ 26 марта 2019

Вы можете использовать это для печати диапазона строк:

sed -n -e 10,20p file.txt | tac

tac обратный порядок строк

0 голосов
/ 26 марта 2019

А для тех из вас, у кого нет TAC (как те, кто там Mac):

sed -n -e 10,20p file.txt | tail -r 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...