regex 多文件输入-在特定空间拆分字符串

j91ykkif  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(81)

我使用kdialog的文件选择对话框来帮助我选择多个文件,并将这些文件的位置存储到一个数组中。不幸的是,kdialog捕获的字符串有一个空格作为分隔符。所以kdialog本质上检索一个字符串,看起来像这样:

/home/file 1.jpg /home/file 2.jpg /home/file 3.jpg

字符串
我实际上是在尝试拆分这个字符串,所以它看起来像这样:

/home/file 1.jpg 
/home/file 2.jpg 
/home/file 3.jpg


我试着用这个代码来分割它

IFS=' /' read -r -a array <<< "$variable"


但是没有用。在使用kdialog之前,我使用的是zenity的文件选择对话框,它的输出如下所示:

/home/file 1.jpg|/home/file 2.jpg|/home/file 3.jpg


用这段代码可以更容易地分割输出;

IFS='|' read -r -a array <<< "$variable"


但是kdialog的缩略图可以调整大小,而zenity不能,这就是为什么我尝试使用kdialog。

wqlqzqxt

wqlqzqxt1#

vars=$(kdialog "${PWD}" --getopenfilename --multiple --separate-output)

字符串
更可取。
它不仅是一个“本机”功能,而且,虽然通过使用sed编辑输出文本将文件分隔成行也可以工作,但明显的缺点是它仅限于没有空格的文件名。包含空格的文件名将被拆分。
$PWD通常比“.”更可取,虽然kdialog本身可以正确地替换它,但有时您可能最终会得到文字相对值“.”,而不是更可能需要的完整路径。

zazmityj

zazmityj2#

variable=$(kdialog --getopenfilename --multiple .);
variable=$(echo $variable | sed 's/\ \//\\n\//g')
kdialog --msgbox "$variable";

字符串

相关问题