Я хочу рекурсивно заменять строки внутри папки, и я решил использовать Perl. Я хотел бы посмотреть, есть ли решение, которое требует меньшей зависимости и работы на разных платформах.
Для списка файлов я могу использовать что угодно от ls
до find
до ag
, rg
. Позвольте мне продемонстрировать мою проблему с ls
.
ls | xargs -I '{}' ed -s {} <<< $'='
Я получу это:
Is a directory
newline appended
=: No such file or directory
Поскольку канал используется для передачи имен файлов в xargs
, а потоки (здесь-строка), похоже, не работают (Как можно использовать heredocs с xargs?). Интересно, можно ли использовать xargs
с ed
.
Меня беспокоит кроссплатформенность, и на самом деле эта команда будет помещена внутри package.json
для npm run global_replace
. Нам интересно, есть ли другие решения, кроме введения gulp-replace
и gulp
только для этой задачи.
$'='
сокращается оболочкой до=
(кавычки ANSI-C) и печатает номер текущей строки, которая является последней. - person Benjamin W.   schedule 09.11.2018$'2,5d\nw'
, который должен удалить эти строки и сохранить. Моя цель состояла в том, чтобы продемонстрировать, что herestring не работает. - person Sunny Pun   schedule 09.11.2018