ディレクトリリストの作成

ディレクトリリストの作成

テキストファイル()に名前リストがあり、list.txtファイルに含まれる名前でフォルダリストを作成したいと思います。次のスクリプトを書いたが、うまくいかず、何が間違っているのかわかりません。

#!/bin/tcsh
for name_id in `cat <path to list.txt>/list.txt` ; do
mkdir <name_id>${name_id}

ファイルlist.txtとスクリプトは同じフォルダにあります。

ベストアンサー1

これは私にとって効果的です。

xargs mkdir <list.txt

これは、複数の引数を指定すると、すべての可能なmkdirディレクトリを幸せに生成するために機能します。xargs改行をスペースで置き換えてテキストファイルを「平坦化」すると、mkdir一度に1つずつ、代わりにすべてのディレクトリ名を含む長い引数のリストを呼び出すことができます。

固定プレフィックス(またはサフィックス、またはその両方)を追加する場合:

xargs -I, mkdir prefix_, <list.txt

スイッチの後に入力された内容(この場合はカンマ)は、ファイル-Iから読み取られた名前に置き換えられます。

もう1つのことは、テキストファイルのファイル名にスペースやその他の「特殊」文字が含まれている場合は引用符を追加することです。

xargs -I, mkdir "," <list.txt

または

xargs -I, mkdir "prefix_," <list.txt

おすすめ記事