Linux/シェル/文字列操作

Linux/シェル/文字列操作

これができると Vim との組み合わせでパワフルになる

指定した幅で折る

指定した幅で文字列に改行を挟み込んで表示上折る。

出力が横に長大な場合これを使うと読みやすくなる・・・かも?

文字数指定で折る

$ echo "1234567890"|fold -w 5
12345
67890

単語区切りで折る。sオプションをつけるとスペースの区切りでも折れるようになる。

$ echo "123 4567890"|fold -sw 5
123
45678
90

連番を生成する

1スタート10までなら

$ seq 10
1
2
3
4
5
6
7
8
9
10

始まりをズラして -5 スタート 5までなら

$ seq -5 5
-5
-4
-3
-2
-1
0
1
2
3
4
5

連番の間隔を指定するなら

$ seq 1 2 10
1
3
5
7
9

フォーマット指定して出力する。これは printf の指定ができるようだ。 ゼロ埋めで欲しいなら

$ seq -t %05g 10
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010

必要な分だけゼロ埋めなら

$ seq -w 10
01
02
03
04
05
06
07
08
09
10

各連番の区切りを設定する。デフォルトは改行 これをスペース4つ区切りにしてみると

$ seq -s "    " -t "\n" 10
1    2    3    4    5    6    7    8    9    10

こうなる。コマンドラインでは最終(↑なら10の後)に改行が入って欲しいので、終端の文字列を指定している。

先頭から指定行数だけ抜き出す

先頭から指定行抜き出すにはheadコマンドを使う。先頭3行を抜き出すには

head -3

と書く

パイプで組み合わせてよく使う。

ls -l|head -3

行単位でソートする

cat hoge|sort

フィールド指定でソートする

kオプションを付けて指定

cat hoge|sort -k 2,4

この場合なら第二フィールドから第四フィールドをキーに使ってソートする

降順ソートする

rオプションを付けて指定

cat hoge|sort -r

タグ

linux/shell/string_operations.txt · 最終更新: 2016-10-12 12:00 by ore