Перенаправить команду и вывод в файл [дубликат]

На этот вопрос уже есть ответ:

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

    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
0
задан 20 October 2016 в 20:55

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
0
ответ дан 28 September 2019 в 08:51

Другие вопросы по тегам:

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