我有一个文件(假设名为list.txt
),其中包含相对路径,每行一个路径,类似于以下内容:
foo/bar/file1
foo/bar/baz/file2
goo/file3
我需要编写一个Bash脚本,逐个处理路径,将其在最后一个斜杠处拆分,然后启动另一个进程并将路径的两个部分作为参数传递给它。到目前为止,我只有循环部分:
for p in `cat list.txt`
do
# split $p like "foo/bar/file1" into "foo/bar/" as part1 and "file1" as part2
inner_process.sh $part1 $part2
done
我该如何分割?在路径没有斜杠的情况下,这个方法是否适用?
$part1/$part2
大多数情况下都可以工作,但如果$p
是/etc
,你会得到//etc
。 - Daniel Darabos//etc
是/etc
的有效同义词。但是,如果您需要删除双斜杠,请参阅此问题以获取解决方案:https://dev59.com/7G445IYBdhLWcg3w6eRo - dwymark