Привет, я ищу способ объединить все приведенные ниже команды вместе.
Я все еще учусь, и это лучшее, что я мог получить:
awk '!/^[[:spaces:]]*$/' x.csv > tmp && mv tmp x.csv
awk -F"," '($100 = "")1' OFS = "," x.csv > tmp && mv tmp x.csv
Они работают индивидуально, но я не знаю, как их соединить, и я ищу способы, чтобы он проходил через все файлы в каталоге.
Ищу конкретный код AWK или сценарий оболочки, вызывающий AWK. Спасибо!





Вы можете передать вывод первого другому:
awk '!/^[[:space:]]*$/' x.csv | awk -F"," '($100 = "")1' OFS = "," > new_x.csv
Если вы хотите запустить вышеуказанное для всех файлов в вашем каталоге, вы должны сделать:
shopt -s nullglob
for f in yourdirectory/*.csv; do
awk '!/^[[:space:]]*$/' "${f}" | awk -F"," '($100 = "")1' OFS = "," > new_"${f}"
done
shopt -s nullglob таков, что пустой каталог не даст вам буквального *. Цитируется из хороший источник о циклическом просмотре файлов
можно комбинировать в одном скрипте без каких-либо циклов
$ awk 'BEGIN{FS=OFS = ","} FNR==1{close(f); f=FILENAME".updated"} NF{$100 = ""; print > f}' files...
он не перезапишет исходные файлы.
поскольку очередь редактирования заполнена, можете ли вы заменить
[[spaces]]на[[space]]? Лишнийs- опечатка