Как скопировать файл, внося изменения в каждую строку [bol]?

Мне нужно скопировать файл, чтобы конечный файл имел определенную строку в начале каждой строки, и это должен был быть bash one liner. Так что никаких скриптов и циклов, просто бол.

bol - bash one liner

Мне лично нужно, чтобы это выполнялось с помощью команды, использующей программу grep. Я ценю, если вы можете решить это любым возможным способом, я просто не так много использую его, если не с помощью grep.

РЕДАКТИРОВАТЬ: Ладно, с помощью grep этого сделать нельзя, sed в порядке.

-2
16.12.2018, 13:49
4 ответа
$ sed 's/^/specific string/' input >output

Вы сказали, что вам нужно использовать grep , хорошо ...

$ sed 's/^/specific string/' input | grep . >output
3
28.01.2020, 05:15

Возможно, это (непроверено):

cat file.txt | sed 's/^\(.*\)$/new text at line start\1/g' > file-copy.txt

также может работать с awk вместо sed

0
28.01.2020, 05:15

Без sed и GNU grep по запросу:

grep --label="SPECIFIC STRING" --null -H ^ input_file.txt

PS: Если вам интересно, нет, это несерьезный ответ

1
28.01.2020, 05:15

Поскольку вы просили bash , в частности, вот однострочный (хотя и длинный):

{ while IFS= read -r line ;do printf "%s %s\n" "SPECIAL" "$line" ; done < input.txt ; [ -n "$line" ] && printf "%s %s\n" "SPECIAL"  "$line" ;  }

Но, конечно, гораздо более короткий путь через awk :

 awk '{print "SPECIAL ",$0}' input.txt
0
28.01.2020, 05:15

Теги

Похожие вопросы