Все, что делает 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чтобы впоследствии изменить порядок строк в выходных данных.
- Долгосрочный способ - вывести каждый файл в однострочный файл, добавить к нему текущий список вывода, а затем переместить его, чтобы перезаписать текущий список вывода.