Эта функция bash
должна работать:
foo() {
searchstring="$1"
shift 1
echo "========${searchstring}===========" ;
grep --no-filename "${searchstring}" "$@" | \
cut -d" " -f25 | tee "${searchstring,,}".txt
}
Вызвать так:
foo Pitch filename-{1..201..5}
Как это работает. Поскольку grep
позволяет использовать несколько имен файлов из командной строки, а bash
позволяет добавлять префиксы в строку к коду, например {1..10}
, нет необходимости передавать имена файлов по одному в цикле for
. cat
и >
могут быть заменены одной футболкой
.
Первый аргумент foo
- это строка поиска (например, « Match ]»), для которой оболочка устанавливает значение « $ 1 », что дает перемещен во временную переменную $ searchstring
, затем « Match » удаляется с помощью shift 1
, так что « $ @ » содержит только имена файлов.
Согласно этой ветке форума NVIDIA , в Linux невозможно получить имя поставщика.