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

[ワンライナー]環境変数$PATHを改行して出力する方法[sed, Ruby, Python, AWK]

Last updated at Posted at 2019-03-02

やり方はたくさんあるので、お好きなものをどうぞ。

未経験の子に$PATHの概念を教えて実際に出力してもらった時に、デリミタ:で改行する方法を教えました。

ワンライナーって色々なやり方があるのですが、皆様はどんな流儀をお持ちでしょうか。
私はAWKが好きで、なんでもAWKでやりたくなっちゃいます。

sed

いきなりですが、短く書けますし、sedが一番良いと思います。

sed 's/:/\n/g' <<< $PATH

trを使って書けばよりシンプルです。

tr ':' "\n" <<< $PATH 

Ruby

何でもRubyで書かないと気がすまない人っていますか?

ruby -F: -ane 'puts $F' <<< $PATH

これは少し説明が必要かもしれないですね。-Fのオプションでデリミタ−を設定し、なおかつauto splitのオプション-aをつけることにより、自動的に$F = $_.splitを実行します。

つまりこういうことです。

ruby -ne 'puts $_.split(":")' <<< "$PATH"

Python

Pythonはよくわからないので、これが一般的な感じか不安はありますが、argvを利用するためにsysをimportする必要があり、記述が長くなるのが欠点ですね。

python -c 'import sys; print "\n".join(sys.argv[1].split(":"))' "$PATH"

AWK

AWK好きです。ターミナル上での簡易なテキスト処理ならAWK最強です。しかし、for文とかwhile文とか書きたくないんですよね・・・。

awk -F ':' '{ for(i = 1; i <= NF; i = i + 1) print $i }' <<< $PATH

とか

awk '{ split($0,arr,":"); for(var in arr) print arr[var] }' <<< $PATH

ただし、上記のsedでやったような考え方でやることもできます。

awk '{ if (gsub(/:/ ,"\n")) print }' <<< $PATH

ですね。

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