重定向命令并输出到文件

重定向命令并输出到文件

执行的命令:

    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

答案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

相关内容