Перенаправление команды и вывод в файл

Выполненные команды:

    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

Я хочу, чтобы count и команда добавлялись в.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

1 ответ

Или

  1. использовать script команда для захвата терминала, а затем редактировать результаты, или

  2. сохраните команду в переменной и затем оцените команду:

    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
Другие вопросы по тегам