Я хочу добавить хэши ко всем строкам в обычном текстовом файле. Я в порядке с использованием терминала и графического интерфейса - мне просто нужно сделать это.
text-processing
Oxwivi
источник
источник
sed 's/^/##/' -i file
. В этом случае это было бы предпочтительным, так как это не может пойти не так. В других случаях эта команда может быть объединена с,diff -u file.bak file
чтобы увидеть различия (при необходимости, передать это черезless
). Если подтверждено, что резервная копия может быть удалена. В противном случае это может быть восстановлено с помощью простогоmv file.bak file
.sed 's/^\(.*\)$/##\1/'
, но это гораздо приятнее.Вот решение этой проблемы с использованием Perl
источник
-p
Переключатель также полезен:perl -pe 's/^/##/' infile > outfile
. (Также есть-i[extension]
переключатель для замены целевого файла на месте.) Perldoc.perl.org/perlrun.html#%2a-p%2aПока мы на это:
При этом используется (сравнительно новый) плагин редактирования на месте для GNU awk 4.1.0+.
источник
Вот
bash
способ:( В
bash
оболочке запускread -r
без других аргументов работает подобноIFS= read -r REPLY
.)Это стилистически вдохновлено Perl-решением beav_35 , которое, я допускаю, вероятно, работает намного быстрее для больших файлов, поскольку
perl
можно ожидать, что оно будет более эффективным, чем оболочка, когда дело доходит до обработки текста.источник
sed -i
не является стандартом POSIX, поэтому, если вы пурист, вы захотите использоватьed
:источник
Вот более простой
perl
способ, чем в других местах:Это (ab) использует тот факт, что
perl -p
печатает строку после выполнения команды, указанной в-e
.источник
Вы можете использовать Vim в режиме Ex:
%
выбрать все строкиs
заменаx
сохранить и закрытьисточник
Может быть сделано с помощью функции отображения Python и перенаправления стандартного ввода:
Сохраните вывод в новый файл и используйте его вместо оригинального
источник