テキストファイル()に名前リストがあり、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