Все, что grep
можно сделать, можно сделать внутри sed
: см. Этот урок . В этом случае вы добавляете -e '/PATTERN/d'
для воспроизведения grep -v
опцию:
ls | sed -E -e '/_init_/d' -e 's/^([a-zA-Z0-1]+)/import \1/' >> __init__.py
Вы можете устранить ls
, используя вместо этого:
for f in *; do echo "$f"; done | sed -E -e '/_init_/s' -e 's/^([a-zA-Z0-1]+)/import \1/' >> __init__.py
Это устраняет необходимость использования внешней программы и обработки любой дополнительной информации или флагов, которые могут быть добавлены по ls
умолчанию.
Есть несколько способов добавить файлы в обратном порядке:
- Если вы используете
ls
, тоls -r
выведите файлы в обратном порядке. - Если вы используете
for f in *; ...
, то направьте вывод черезsort -r
. - Вы можете использовать
tac
для обратного порядка строк в выходных данных впоследствии. - Долгосрочный способ - вывести каждый файл в однострочный файл, добавить к нему текущий список вывода, а затем переместить его, чтобы перезаписать текущий список вывода.