Если вы используете такую оболочку, как bash
, вы можете установить параметр оболочки dotglob
, чтобы подстановочный знак звездочки *
соответствовал ВСЕМ файлам, а не только тем, которые не начинаются с точки .
персонаж.
Для любого каталога эти три примера должны возвращать один и тот же набор файлов
пример 1find. -mindepth 1 -maxdepth 1 -printf '%f\n'
пример 2 dg=$(shopt -q dotglob)
shopt -s dotglob
echo *
[[ $dg -eq 1 ]] && shopt -u dotglob
пример 3 ( shopt -s dotglob; echo * )
Добро пожаловать на сайт, Эразмо. Вы можете значительно упростить сделку с помощью:
#!/bin/bash
file="report.csv"
sed 's/\,/;/g' "$file" > tmp.txt
file2="tmp.txt"
awk '{print $1";service"}' "$file2" > report_v2.csv
Что должно иметь tmp.txt
выход:
1;foo
2;pippo
3;pluto
4;davis
И должен иметь report_v2.csv
выход:
1;foo;service
2;pippo;service
3;pluto;service
4;davis;service
Вы можете просто использовать команду ниже, чтобы получить требуемый результат
awk '{gsub(",",";",$0);print $0";service"}' report.csv >> report_v2.csv
выход
1;foo;service
2;pippo;service
3;pluto;service
4;davis;service