ls -R $pwd > text.txt
上記のコマンドは、次のtxtファイルを生成します。
engagement
groups
solo
text.txt
./engagement:
VAM01427.JPG
_VJR3208.JPG
_VJR3244.JPG
_VJR3281.JPG
./groups:
family
friends
./groups/family:
_VJR3358.JPG
_VJR3376.JPG
_VJR3379.JPG
./groups/friends:
_VJR3404-2.jpg
_VJR3416.jpg
_VJR3456.JPG
./solo:
VAM01381.JPG
VAM01385.JPG
VAM01386.JPG
このテキストファイルに基づいて、mkdirコマンドを使用してフォルダを作成してみました。
コマンドを実行するとき:cat text.txt | xargs -L 1 mkdir
このコマンドは重複フォルダを作成します。
質問を正しく書くことができません。誰でも助けることができますか?
答え1
ディレクトリのみをリストするようにテキストファイルの形式を変更すると、問題全体がはるかに簡単になります。
find . -type d >directories.txt
それから
while IFS= read -r dir; do mkdir -p "$dir"; done <directories.txt
ここでは、ディレクトリ名にスペースを含めることができますが、改行文字は含まれないと仮定します。
答え2
テキストファイルで目的のタスク($ HOMEフォルダにディレクトリを作成)を実行できたので、cat text.txt | grep ./ | awk -F: '{ print $1}' | xargs -L 1 mkdir
最初に./行をフィルタリングしてから末尾の:を削除してフォルダを作成します。