私はこのような何か、ファイルへの相対パスを含むファイル(list.txt
と呼ばれると言う)を持って、1行に1つのパス、すなわち:私は、一度に1つのパスを処理bashスクリプトを記述する必要がUbuntuのbashスクリプト:最後のスラッシュでパスを分割する方法は?
foo/bar/file1
foo/bar/baz/file2
goo/file3
を、それを最後のスラッシュで分割し、2つのパスを引数として別のプロセスに渡します。これまでのところ、私はループ部分のみを持っています:
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
どのように分割しますか?パスがスラッシュを持たない縮退したケースではこれは機能しますか?
Thxを
これは最後のスラッシュが必要なので、実際には "part1 =' dirname $ p'/"ですが、それ以外は完璧です:-) –
ファイル名にスペースや面白い記号が含まれるとすぐに破損します。 ':-(' –
そのような破損は共同で解決するのは簡単ではありません$ 1( "dirname" $ p ")"と 'part2 =" $(ベース名 "$ p") " – zenaan