【问题标题】:Opening pdfs from a list file which contains paths to pdfs [duplicate]从包含 pdf 路径的列表文件中打开 pdf [重复]
【发布时间】:2021-06-13 00:22:03
【问题描述】:

我有一个选定 pdf 的列表文件(每一行都包含一个 pdf 的路径)。这些 pdf 文件位于不同的目录中,总共有数千个。我对使用 bash 非常陌生,并且很难只打开列表文件中列出的那些文件。任何帮助将不胜感激。

【问题讨论】:

  • 链接中的所有答案都会处理文件中的所有行,这不是 OP 需要的。我很高兴在它关闭之前发布了更合适的答案。

标签: bash shell data-analysis


【解决方案1】:

如果列出了数千个文件,您可能不想一次打开所有文件。这个小脚本按数字打开您在命令行上指定的那个。您可以修改它以打印出名称或搜索列表等。

#!/bin/sh
case "$1" in
    [1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]) N="$1" ;;
    *)  echo "Put a file number on the command line";  exit       ;;
esac
while read pdfpath; do
    if [ $((--N)) = 0 ]; then
        atril "$pdfpath" &      # Or evince, okular, etc.
        exit
    fi
done < listfile.txt

开头的case 将N 设置为第一个命令行参数($1),如果它是一个数字,但如果没有指定一个数字则退出。

while read ... done 循环遍历列表文件中的行,并依次读取变量 pdfpath 中的每一行。

$((--N)) 递减变量,因此当它变为零时,它与比较匹配并进入if 子句。

&amp; 会导致命令执行,但控制会立即返回,因此脚本可以退出并且不会占用您的 bash 提示符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2015-08-30
    • 2015-05-10
    • 2019-05-24
    相关资源
    最近更新 更多