CSVファイルを解析してユーザーを追加する

CSVファイルを解析してユーザーを追加する

CSV ファイルを解析してユーザーを追加する際に問題が発生しています。

1000 人のユーザーのリストを追加するための小さなスクリプトを作成しました。

export IFS=","

cat users.csv | while read a b c d e f g; do useradd -d -u $a -U $d ; done

CSV ファイルの形式は次のとおりです。

ps2946,male,Phil Harris,Recording,6508 Hollywood Blvd,Nov 16 1950,760 901 3537
mc3225,male,Mel Blanc,Radio,6385 Hollywood Blvd.,Oct 1 1983,626 647 5560
fn1029,male,Franklin Pangborn,Motion pictures,1500 Vine Street,Mar 10 1911,858 497 6108
we9602,undefined,Webb Pierce,Recording,1600 Vine Street,Sep 3 1988,559 595 6063

ただし、スクリプトを実行すると、ファイル全体が反復され、次の処理が繰り返されます。

useradd: invalid home directory '-u'

export IFS を使用して単語をコンマで区切り、useradd コマンドのパラメータとして使用しました。

マニュアルを読んでホームディレクトリの値を使用しましたが、スクリプト全体が間違っているように感じます。

CSV ファイルからユーザーを追加するためのスクリプトを適切にフォーマットするのを手伝ってくれる人はいませんか?

参考までに、このスレッドをベースに使用しました:https://stackoverflow.com/questions/4439536/shell-script-to-parse-through-a-file-csv-and-process-line-by-line

答え1

このエラーは、オプション を指定して を呼び出しているために発生します。このオプションuseradd-dは、次の単語がデフォルトのホーム ディレクトリ内のホーム ディレクトリ パスまたはディレクトリ名 ( ではない-u) であることが想定されています。

最初の提案として、次のことを試してください。

cat users.csv | while read a b c d e f g; do useradd -d "$a" -U "$d" ; done

関連情報