我有一行将md5sum生成到包含文件的文件中:
find / -type f \( -name "*.pl" -o -name "*.py" \) | md5sum *.pl *.py >> sum.txt
sum.txt
将输出:
d41d8cd98f00b204e9800998ecf8427e file.pl
60b725f10c9c85c70d97880dfe8191b3 file.py
我需要在文件名后包含服务器名称,最好是读取$ HOSTNAME,因为脚本将在不同的服务器上运行,如下所示:
d41d8cd98f00b204e9800998ecf8427e file.pl host.one.com
60b725f10c9c85c70d97880dfe8191b3 file.py host.one.com
答案 0 :(得分:1)
该命令将搜索所有*.pl
和*.py
个文件。 find
将执行md5sum
命令,并且每个行都会添加一个主机名。这两个命令都会生成相同的输出:
find / -type f \( -name "*.pl" -o -name "*.py" \) -exec md5sum {} + | awk -v ORS=" $HOSTNAME\n" 1. >> sum.txt
find / -type f -name "*.p[ly]" -exec md5sum {} + |awk -v "h=$HOSTNAME" '{print $0,h}' >> sum.txt
答案 1 :(得分:1)
另一种方法是使用find -regex
并使用sed
附加主机名:
find / -type f -regex '.*\.\(py\|pl\)' -exec md5sum {} + | sed 's/$/ '"$HOSTNAME'/'