列の内容に基づいて新しいディレクトリ/フォルダを作成します。

列の内容に基づいて新しいディレクトリ/フォルダを作成します。

以下のデータを含むフォルダを作成する必要があります。

フォルダ名は列1に基づいて一意に指定する必要があります。各フォルダA、B、C、Dの内容は、2列の対応する値でなければなりません。

また、各フォルダのアイテムの総数が必要です。

例えば。 「B」というフォルダには、フォルダ「B」の最後の行の総数である「3」という一意の行番号で、「B、B1、B2」が必要です。

データは次のとおりです。

col1    col2
A       A
B       B
B       B1
B       B2
C       C1
C       C2
C       C3
D       D1
D       D2

ベストアンサー1

「フォルダの内容」がどういう意味なのかよくわかりません。これはディレクトリですか、それとも一種のファイルですか?ディレクトリを簡単に作成できる場合:

< /tmp/input.txt xargs -n2 bash -c 'mkdir -p $0/$1'

これは/tmp/input.txt、入力ファイル(例では)から一度に2つの引数を単純なbashスクリプトに送信することを意味しますmkdir -p $0/$1。これは、最初のパラメータ()が一番上にあり、2番目のパラメータが最初のパラメータ()の下にあるディレクトリを繰り返しmkdir -p生成することを意味します。$0$1

ディレクトリの代わりにファイルを生成するには、次のように変更できます。

< /tmp/input.txt xargs -n2 bash -c 'mkdir -p $0;touch $0/$1'

echo次のコマンドを挿入して進行状況を確認できます。

< /tmp/input.txt xargs -n2 bash -c 'echo mkdir -p $0;echo touch $0/$1'
mkdir -p A
touch A/A
mkdir -p B
touch B/B
mkdir -p B
touch B/B1
mkdir -p B
touch B/B2
...

-pディレクトリがすでに存在する場合は、失敗しないように ""フラグがまだ必要です。mkdirmkdir

おすすめ記事