小编Krs*_*ztr的帖子

如何解压到指定目录

我有一个包含 .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)

bash

9
推荐指数
1
解决办法
1万
查看次数

如何在 csh 中为命令的输出设置变量?

我在文本文件中有一个数字,例如:

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)

command-line text-processing csh

5
推荐指数
1
解决办法
8053
查看次数

相对获取文件路径

我有两个目录 A 和 B。每个目录都包含一个 zip。

如何将这两个zip文件的路径写入文本文件?

目录系统示例:

FILES/ONE/one.zip
FILES/TWO/two.zip
Run Code Online (Sandbox Code Playgroud)

我想从 FILES 目录运行命令

command-line bash find text-processing

4
推荐指数
1
解决办法
412
查看次数

如何跳过解压缩已经存在的文件?

我有一个 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)

什么是好的解决方案?

bash

2
推荐指数
2
解决办法
8056
查看次数

如何将所有目录名称写入文本文件

我想列出我的子目录。当我执行以下 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)

问题出在哪儿?

bash

1
推荐指数
1
解决办法
8321
查看次数

标签 统计

bash ×4

command-line ×2

text-processing ×2

csh ×1

find ×1