cat and pipe vs. redirection [duplicate]

\\ превращается в \ в двойных кавычках. \\ ref становится \ ref , что на самом деле является \ r , за которым следует ef . Используйте четыре обратной косой черты:

for f in *; do
    if [[ -d $f ]]; then
        perl -ne "print if s/(\\\\ref\{.*?)\}/\1_$f\}/g" $f/SystemRequirements_$f.tex
    fi
done

Аналогично, \ a - это символ BELL ( \ x07 ).

6
03.09.2018, 02:27
1 ответ

В целом, foo < barи < bar fooэквивалентны в сценариях bash. Каждый раз, когда < filenameобрабатывается оболочкой, это означает, что команда, с которой он связан, будет получать стандартный ввод из этого файла. Никаких дополнительных команд или процессов здесь не задействовано; оболочка делает это сама.

Запуск cat filenameсчитывает содержимое указанного файла и записывает его в стандартный вывод. |между двумя командами означает подключение стандартного вывода левой команды к стандартному вводу правой команды.

Таким образом, обе ваши команды имеют одинаковый эффект отправки содержимого /proc/uptimeв awk, но первый способ запускает для этого дополнительный catпроцесс.

6
27.01.2020, 20:27

Теги

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