Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从包含PDF路径的列表文件打开PDF_Bash_Shell_Data Analysis - Fatal编程技术网

Bash 从包含PDF路径的列表文件打开PDF

Bash 从包含PDF路径的列表文件打开PDF,bash,shell,data-analysis,Bash,Shell,Data Analysis,我有一个选定pdf的列表文件(每行包含pdf的路径)。这些PDF位于不同的目录中,总共有数千个。我对使用bash非常陌生,并且很难只打开列表文件中列出的那些文件。任何帮助都将不胜感激。如果列出了数千个文件,您可能不想同时打开它们。这个小脚本打开您在命令行上按编号指定的脚本。您可以修改它以打印出姓名或搜索列表等 #!/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=

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

如果列出了数千个文件,您可能不想同时打开它们。这个小脚本打开您在命令行上按编号指定的脚本。您可以修改它以打印出姓名或搜索列表等

#!/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
#/垃圾箱/垃圾箱
案件“$1”
[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9])N=“$1”;;
*)echo“在命令行上输入文件号”;出口
以撒
同时读取pdfpath;做
如果[$((-N))=0];然后
atril“$pdfpath”和#或evince、okular等。
出口
fi
完成
开头的
案例
N
设置为第一个命令行参数(
$1
),如果它是一个数字,但如果没有指定数字则退出

读取时。。。完成
循环列表文件中的行,并依次读取变量
pdfpath
中的每一行

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


&
会执行命令,但控制会立即返回,这样脚本就可以退出,而不会占用bash提示符。

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