我有一个包含 .zip 文件路径的列表,由以下命令收集。我想将它们解压缩到它们存在的那个目录中。
find . -name "*.zip" -print > outfile.txt
Run Code Online (Sandbox Code Playgroud)
outfile.txt 是这样的:
./TWO/two.zip
./ONE/one.zip
Run Code Online (Sandbox Code Playgroud)
我有run_all脚本来自动化它,但我如何定义输出目录?
run_all outfile.txt 'unzip -u $1'
Run Code Online (Sandbox Code Playgroud) 我在文本文件中有一个数字,例如:
int_width: 5230
Run Code Online (Sandbox Code Playgroud)
我想将此数字 (5230) 设置为csh. 什么是正确的形式?(grep 在设置前工作)
set WIDTH = "$(grep int_width *.txt | sed 's/[^0-9]*//g')"
Run Code Online (Sandbox Code Playgroud) 我有两个目录 A 和 B。每个目录都包含一个 zip。
如何将这两个zip文件的路径写入文本文件?
目录系统示例:
FILES/ONE/one.zip
FILES/TWO/two.zip
Run Code Online (Sandbox Code Playgroud)
我想从 FILES 目录运行命令
我有一个 for 循环,它将所有内容解压缩.zip到该目录中。我想检查解压后的文件是否已经存在并且只对压缩后的文件进行解压。
这是没有任何 if 语句的代码:
for i in `cat zipfiles.txt`; do
output_dir=$(dirname $i)
unzip -d $output_dir $i
done
Run Code Online (Sandbox Code Playgroud)
zipfiles.txt 是这样的:
./CSAN/S1A.zip
./MEZO/S1B.zip
Run Code Online (Sandbox Code Playgroud)
输出是
./CSAN/S1A.SAFE
./MEZO/S1B.SAFE
Run Code Online (Sandbox Code Playgroud)
我试图添加一个if循环,但它仍然询问我是否要替换已经存在的文件。
for i in `cat zipfiles.txt`; do
file="${dir%/}.SAFE"
if [ -e "$file" ]
then
echo "It exists"
else
output_dir=$(dirname $i)
unzip -d $output_dir $i
fi
done
Run Code Online (Sandbox Code Playgroud)
什么是好的解决方案?
我想列出我的子目录。当我执行以下 for 循环时,第一个目录名称出现两次
for d in */; do
echo $d >> directories.txt
done
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
ONE/
TWO/
ONE/
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿?