Мне нужно скопировать файл, чтобы конечный файл имел определенную строку в начале каждой строки, и это должен был быть bash one liner. Так что никаких скриптов и циклов, просто бол.
bol - bash one liner
Мне лично нужно, чтобы это выполнялось с помощью команды, использующей программу grep. Я ценю, если вы можете решить это любым возможным способом, я просто не так много использую его, если не с помощью grep.
РЕДАКТИРОВАТЬ: Ладно, с помощью grep этого сделать нельзя, sed в порядке.
$ sed 's/^/specific string/' input >output
Вы сказали, что вам нужно использовать grep
, хорошо ...
$ sed 's/^/specific string/' input | grep . >output
Возможно, это (непроверено):
cat file.txt | sed 's/^\(.*\)$/new text at line start\1/g' > file-copy.txt
также может работать с awk
вместо sed
Без sed
и GNU grep
по запросу:
grep --label="SPECIFIC STRING" --null -H ^ input_file.txt
PS: Если вам интересно, нет, это несерьезный ответ
Поскольку вы просили 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