Overview
Unique なユーザー ID を設定する必要があり、以下のコマンドで最も大きな数値が使われている ID の絞り込みまではできたけど、そこからワンライナーでインクリメントするのに手間取ったのでメモ。
dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1
> 610
One Answer: awk を使う
もう一回 awk 使えばいけました。
dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1 | awk '$0++'
> 611
awk を連発するのははコストが高いのかな...
もっといい書き方知ってるよという方いたら教えてください。
AWK についてメモ
オーク。プログラミング言語の一つ。
開発者であるアルフレッド・エイホ、ピーター・ワインバーガー、ブライアン・カーニハンの3人の苗字の頭文字で「AWK」。
テキストファイル、特に空白類(スペースの他、タブなど)やカンマなどで区切られたデータファイルの処理を念頭に置いた仕様となっているが、 一般的なプログラミングに用いることも可能。
AWKは、ベル研究所における UNIX 開発の過程で、 sed や grep のようなテキスト処理ツールに演算機能を持たせた拡張ツールとして開発された。
いろいろと機能の拡張が行われた結果、汎用のプログラミング言語と比べても遜色が無いほどの機能を持つようになり、テキスト処理だけではなく、プログラミングもできる。現在でもCSV形式のファイルを簡易に処理する、などの目的で広く使用されている。
さらに xargs を使えばいい感じ
xargs で最後にパイプで渡された値を指定できるので、ワンライナーで ID の指定までできる。
dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1 | awk '$0++' | xargs dscl . -create /Users/hoge UniqueID