ファイル名のリストを処理して、ディレクトリと基本名を分割します。

ファイル名のリストを処理して、ディレクトリと基本名を分割します。

複数のファイル名を含むファイルがあります。

$ cat test_as1
/var/incoming/foo.txt
/var/incoming/bar.txt
/var/incoming/baz.txt

各ファイル名について、ディレクトリ名とデフォルトのファイル名をコンマで区切って印刷したいと思います。たとえば、

/var/incoming,foo.txt
/var/incoming,bar.txt
/var/incoming,baz.txt

どうすればいいですか?

ベストアンサー1

パラメータ拡張を使用してファイルを繰り返し、最後のスラッシュの前後の部分を印刷できます。

while IFS= read -r line; do
    printf '%s,%s\n' "${line%/*}" "${line##*/}"
done < test_as1

"${line%/*}"/*行末の最短項目を削除し、"${line##*/}"行の先頭から最長項目を削除します。*/

おすすめ記事