こんにちは、さるまりんです!
substring
。他の文字列から位置を指定して一部分取り出すってよくやります。今回はそれをコマンドでやってみます。
abcdefghijklmnopqrstuvwxyz
この文字列から切り取ってみます。
まずはcut
を使ってみます。
cut -c[開始位置]-[終了位置]
で、部分文字列が取れます。
5文字目から10文字目までを切り出してみます。
$ echo 'abcdefghijklmnopqrstuvwxyz' | cut -c5-10
efghij
cut -c[位置1],[位置2]
のように指定すると、その場所の文字を切り出すことができます。
5文字目と10文字目を切り出してみます。
$ echo 'abcdefghijklmnopqrstuvwxyz' | cut -c5,10
ej
範囲を複数指定することもできます。
5〜10文字目、15〜20文字目を切り出してみます。
$ echo 'abcdefghijklmnopqrstuvwxyz' | cut -c5-10,15-20
efghijopqrst
今度はawk
を使ってみます。
awk '{print substr([文字列], [開始位置], [文字数]);}'
awk
では開始位置と切り出す文字数を指定します。
同じ様に5文字目から10文字目までの6文字を切り出してみます。
$ echo 'abcdefghijklmnopqrstuvwxyz' | awk '{print substr($0, 5, 6);}'
efghij
今度は5文字目と10文字目を切り出してみます。
$ echo 'abcdefghijklmnopqrstuvwxyz' | awk '{print substr($0, 5, 1) substr($0, 10, 1);}'
ej
複数の範囲指定、5〜10文字目、15〜20文字目を切り出してみます。
$ echo 'abcdefghijklmnopqrstuvwxyz' | awk '{print substr($0, 5, 6) substr($0, 15, 6);}'
efghijopqrst
cut
の方がシンプルに取り出せた印象ですが、awk
もいろんなことができそうです。
他の使い方についても今後触れていきたいと思います。
読んでくれてありがとうございました。
それではまた!