如何将终端命令的输出存储在文本文件中,但在前面添加一行

如何将终端命令的输出存储在文本文件中,但在前面添加一行

我想要在文件夹中运行此命令来生成所有 FLAC 文件的音频校验和,如下所示:

$ metaflac --show-md5sum *.flac > flacsum.txt

它生成了一个flacsum.txt如下所示的文件:

01 - First Track.flac:0d10049cfb5e675e2adff811d6f918a3
02 - Second Track.flac:3adab834d1508e4cd3a72551eb5f1ae4
03 - Third Track.flac:747b61a2004d1b278591a6f3fe27b1bd

这很好,但是我想做同样的事情,但在输出进入文件之前,在“flacsum.txt”文件中预先添加一个标题并在其下方添加一个空白的新行,如下所示:

MD5 hashes generated using metaflac --show-md5sum

01 - First Track.flac:0d10049cfb5e675e2adff811d6f918a3
02 - Second Track.flac:3adab834d1508e4cd3a72551eb5f1ae4
03 - Third Track.flac:747b61a2004d1b278591a6f3fe27b1bd

有办法实现这个吗?

答案1

您可以重定向许多命令的输出,每个命令都可以单独进行:

echo "MD5 hashes generated using metaflac --show-md5sum" > flacsum.txt
echo >> flacsum.txt
metaflac --show-md5sum *.flac >> flacsum.txt

请注意,除第一个命令外,所有命令均使用>>附加到文件的操作符。

或者更好地对命令进行分组并重定向整个组的输出:

{ echo "MD5 hashes generated using metaflac --show-md5sum"
echo
metaflac --show-md5sum *.flac
} > flacsum.txt

相关内容