
Я пытаюсь распечатать содержимое текстового файла (на самом деле его строки). Я знаком с некоторыми командами, такими как grep
, awk
, sed
; Я хочу принудительно вывести echo
строку на ее исходное место в файле и не могу. Вы понимаете??
Пример:
Ниже приведена часть строкового файла:
Это текстовый файл, полный строк...
Теперь я хочу напечатать слово text
на bash, но не в начале строки. Я хочу напечатать на своем месте, вот так:
--------text---------------------------------
И без тире. Как мне это сделать?
решение1
Может быть, что-то вроде этого?
$ echo 'This is a text file full of strings...' |
perl -pe 's/(^.*)(text)(.*$)/sprintf "%*s", length($1)+length($2), $2/e'
text
т.е. вывести совпадающую строку в поле шириной, равной сумме ее ширины и ширины префикса.