如果文件名中带有空格,如何正确将git ls-files输出传递给Java?

我正在尝试处理git ls-filesJava程序中的输出用法很简单:

java Test $(git ls-files)

Test.java:

public class Test {
  public static void main(String[] args) {
    for (String s : args) {
      System.out.println(s);
    }
  }
}

现在只是打印出所有参数。

输出git ls-files

input $.csv
input_1.csv
input_2.csv
input_3.csv

请注意,第一个input $.csv中间有一个空格。

我想要的输出当然是:

input $.csv
input_1.csv
input_2.csv
input_3.csv

但是,测试打印出的内容是:

input
$.csv
input_1.csv
input_2.csv
input_3.csv

这个空间实际上违反了我的期望。

因此,我尝试sed将所有文件名都用引号引起来:

java Test $(git ls-files | sed "s/\(.*\)/'\1'/g")

的输出$(git ls-files | sed "s/\(.*\)/'\1'/g")符合预期:

'input $.csv'
'input_1.csv'
'input_2.csv'
'input_3.csv'

但是,无论使用和不使用,Test仍会打印出相同的输出sed我的脚本怎么了?

亚诺斯

要在的输出中保留特殊字符git ls-files,请使用-z标志。

git ls-files -z将以null分隔的输出作为命令行参数列表传递,请使用mapfile内置功能(至少需要Bash 4)将输出首先存储在临时Bash数组中然后,您可以在命令行上传递数组,正确保留特殊字符。

mapfile -d '' files < <(git ls-files -z)
java Test "${files[@]}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在OSX上用ls输出的带引号的文件名带有空格

来自分类Dev

如何将WSL中带有空格的文件名传递给cmd.exe?

来自分类Dev

将ls传递给sql in

来自分类Dev

如何将查找结果传递给CP,以使带有空格的文件名起作用

来自分类Dev

如何将带有空格的文件名传递给zip?

来自分类Dev

如何通过xargs将ls传递到cat中,以便列出文件名?

来自分类Dev

如何使ls的输出着色?

来自分类Dev

查找带有空格和连字符的文件名的大小| 将包含空格和连字符的文件名传递给“ du”

来自分类Dev

ls 或 ls -a 无法识别 Java 类文件

来自分类Dev

Perl通配符匹配“ ls”输出中的文件名

来自分类Dev

如何传递带有空格作为参数的文件名?

来自分类Dev

如何传递带有空格作为参数的文件名?

来自分类Dev

LS命令输出到文件

来自分类Dev

如何从ls输出中动态排除文件?

来自分类Dev

ls文件名如何按数字顺序在文件名中包含空格字符

来自分类Dev

当我将ls的输出重定向到文件时,文件名包含在该文件中。如何避免这种情况?

来自分类Dev

为 ls(list 命令)输出目录中的所有文件添加前缀文件名

来自分类Dev

批处理-传递带有空格的文件名,用于循环搜索

来自分类Dev

=在ls输出中.sock文件末尾的符号

来自分类Dev

将ls输出输出到scp命令

来自分类Dev

特定字符后,如何从ls命令的输出中删除空格?

来自分类Dev

在ls的输出中,文件名旁边的*是什么意思?

来自分类Dev

echo $(!ls) 不输出变量名

来自分类Dev

排序ls输出,文件以数字结尾

来自分类Dev

将 ls 的输出转换为 python 列表

来自分类Dev

如何格式化ls的输出?

来自分类Dev

如何为ls的输出列着色?

来自分类Dev

如何对`ls`的输出进行排序?

来自分类Dev

如何防止`ls`对输出进行排序?

Related 相关文章

  1. 1

    在OSX上用ls输出的带引号的文件名带有空格

  2. 2

    如何将WSL中带有空格的文件名传递给cmd.exe?

  3. 3

    将ls传递给sql in

  4. 4

    如何将查找结果传递给CP,以使带有空格的文件名起作用

  5. 5

    如何将带有空格的文件名传递给zip?

  6. 6

    如何通过xargs将ls传递到cat中,以便列出文件名?

  7. 7

    如何使ls的输出着色?

  8. 8

    查找带有空格和连字符的文件名的大小| 将包含空格和连字符的文件名传递给“ du”

  9. 9

    ls 或 ls -a 无法识别 Java 类文件

  10. 10

    Perl通配符匹配“ ls”输出中的文件名

  11. 11

    如何传递带有空格作为参数的文件名?

  12. 12

    如何传递带有空格作为参数的文件名?

  13. 13

    LS命令输出到文件

  14. 14

    如何从ls输出中动态排除文件?

  15. 15

    ls文件名如何按数字顺序在文件名中包含空格字符

  16. 16

    当我将ls的输出重定向到文件时,文件名包含在该文件中。如何避免这种情况?

  17. 17

    为 ls(list 命令)输出目录中的所有文件添加前缀文件名

  18. 18

    批处理-传递带有空格的文件名,用于循环搜索

  19. 19

    =在ls输出中.sock文件末尾的符号

  20. 20

    将ls输出输出到scp命令

  21. 21

    特定字符后,如何从ls命令的输出中删除空格?

  22. 22

    在ls的输出中,文件名旁边的*是什么意思?

  23. 23

    echo $(!ls) 不输出变量名

  24. 24

    排序ls输出,文件以数字结尾

  25. 25

    将 ls 的输出转换为 python 列表

  26. 26

    如何格式化ls的输出?

  27. 27

    如何为ls的输出列着色?

  28. 28

    如何对`ls`的输出进行排序?

  29. 29

    如何防止`ls`对输出进行排序?

热门标签

归档