2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ワンライナーでパイプから受け取った数値をインクリメント

Last updated at Posted at 2019-08-26

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
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?