我有一个循环遍历文件并屏蔽它们的 Bash 脚本。这些文件是 gzip 压缩的,我需要先将它们 gunzip,然后再将它们作为参数传递给 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
最佳答案
使用 basename :
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
第一个参数是文件名,第二个参数是您要删除的扩展名。
关于bash - 从shell脚本中的文件名中删除一级文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13695914/