somecommand | fold | awk '{ print "\t" $0 }'
Esto tomaría la salida desomecommand
(por ejemplo echo
), la enviaría a través de fold
, lo que la doblaría en 80 caracteres (use fold -w N
para doblar en N
caracteres ). Luego, el script awk
imprimirá cada línea sangrada por un carácter de tabulación.
Hacer plegado en puro bash
tiene como resultado un guión más complicado.
Поскольку вы используете двойные кавычки для строки в Perl, \
в строке интерпретируется Perl.
Используйте двойную обратную косую черту, напримерsystem("sed -i 's/\\[-.*-]//g' error.txt");
Или используйте [[]
вместо \[
, т.е.system("sed -i 's/[[]-.*-]//g' error.txt");
Этот вариант будет работать и в оболочке.
Обратная косая черта внутри строки в двойных кавычках в Perl интерпретируется Perl, поэтому выполняется команда
sed -i 's/[-.*-]//g' error.txt
и это удалит символы минус, точки и звездочки. То, что ты второй раз перечисляешь минус, sed не волнует.
Perl имеет ряд инструментов цитирования, в частности, вы можете использовать оператор q
, поэтому
system(q(sed -i 's/\[-.*-]//g' error.txt));
будет работать. См.man perlop