我有一个Bash脚本,可以循环访问文件并屏蔽它们。这些文件是gzip的,我需要先将它们作为参数传递给Python程序,如下面的脚本所示。问题是变量$i
不会变成文件名的解压缩版本。解压缩前的文件名为 my-log-1.c.log.gz
。在文件上运行 gunzip 如下后,我想将my-log-1.c.log
作为参数传递给masker.sh
脚本,而不是.gz
版本。我该怎么做?
#!bin/bash
cd /home/logs
for i in *
gunzip $i
do
python masker.py $i # python program masks files
rm $i
echo "masked_file and removed = $i"
done
使用基本名称:
for i in; do
gunzip "$i"
i=$(basename "$i" .gz)
python masker.py "$i" # python program masks files
rm $i
echo "masked_file and removed = $i"
done
第一个参数是文件名,第二个参数是要删除的扩展名。
您可以使用
以下程序:
for i in; do
gunzip "$i"
i=$(echo $i|rev|cut -d'.' -f2-|rev)
python masker.py "$i" # python program masks files
rm $i
echo "masked_file and removed = $i"
done