Используя wget и Awk для подсчета подобных выражений

Попробуйте это rm -rf -- $(ls -la |grep -v .svn). Это удалит все (включая скрытые файлы) кроме .svn dir.

Править: Вышеупомянутое решение работает на один dir, не дерево, find . ! -name .svn -exec rm {} \; удалит все ФАЙЛЫ а не директоров, Это - безопасный способ сделать это, с тех пор если Вы вызываете rm на каталогах можно удалить каталоги, которые имеют .svn каталоги внутри.

1
задан 25 April 2012 в 19:45
2 ответа

Это печатает наиболее часто встречающийся тип фильтра.

wget -O- http://energy.gov/sites/prod/files/FieldSampleAirResults_0.csv | awk -F, '
    {
        filters[$14]++
    }
    END {
        for (filter in filters) {
            if (filters[filter] > max) {
                max = filters[filter]
                type = filter
            }
        }
        print type
    }'

Вы можете легко распечатать каждый из типов и их количество, если хотите. AWK может выполнить сортировку, если это необходимо, или вы можете использовать внешнюю утилиту sort .

3
ответ дан 3 December 2019 в 17:15

Я бы использовал uniq для обработки подсчета:

wget -O- http://energy.gov/sites/prod/files/FieldSampleAirResults_0.csv | cut -d, -f14 | sort | uniq -c

Обратите внимание, что это не будет правильно обрабатывать поля в кавычках, содержащие запятую. Если вам нужно справиться с этим, вам нужно что-то, что действительно понимает формат CSV, например модуль Python csv :

python -c 'import csv; import sys; [sys.stdout.write(row[14]+"\n") for row in csv.reader(sys.stdin)]'
2
ответ дан 3 December 2019 в 17:15

Теги

Похожие вопросы