На этот вопрос уже есть ответ:
Выполненные команды:
cat a1.txt | grep a | wc -l >> a.txt
cat b.txt | grep a | wc -l >> a.txt
cat c.txt | grep a | wc -l >> a.txt
Я хочу, чтобы счетчик и команда добавлялись в a.txt.
как
Ожидаемый вывод файла: Предположим, что 100 200 300 - это счетчики.
cat a1.txt | grep a | wc -l 100
cat b.txt | grep a | wc -l 200
cat c.txt | grep a | wc -l 300
Или
используют script
, команда, чтобы получить терминал и затем отредактировать результаты, или
хранит команду в переменной и затем оценивает команду:
cmd='cat a1.txt | grep a | wc -l'
printf "%s\t%s\n" "$cmd" "$(eval "$cmd")" >> a.txt
Обобщение этого:
print_and_do() { local cmd="$1"; printf "%s\t%s\n" "$cmd" "$(eval "$cmd")"; }
{
print_and_do "cat a1.txt | grep a | wc -l"
print_and_do "cat b.txt | grep a | wc -l"
print_and_do "cat c.txt | grep a | wc -l"
} >> a.txt
Вы знающий, что cat a1.txt | grep a | wc -l
может быть записан как:
grep -c a a1.txt