我有一个$variable
由空格分隔的许多双引号路径
echo $variable
"/home/myuser/example of name with spaces" "/home/myuser/another example with spaces/myfile"
我的变量上的路径数量可能会有所不同,并且不受控制。例如,它可以像以下示例:
example 1: "path1" "path2" "path3" "path4"
example 2: "path1" "path2" "path3" "path4" "path5" "path6" path7" "path8"
example 3: "path1" "path2" "path3"
example 4: "path1" "path2" "path3" "path4" "path5" "path6"
我想将双引号外的所有空格替换为新行(\n
),同时保留引号内的空格。在这个答案中使用echo $variable | tr " " "\n"
like对我不起作用,因为它用新行替换了所有空格。我该怎么做?
如果元素总是双引号,那么你可以用quote-newline-quote替换quote-space-quote:
或(使用 shell 参数替换)
但是,如果您可以修改脚本以使用数组会更简单: