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 1 year has passed since last update.

シェルコマンドawk

Posted at

シェルコマンドawkの使用:

1.スクリプトを使用して、システムの現在のメモリ使用率のパーセンテージを出力します:

#!/bin/bash
[centos@centos shell]$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         508         130          11        1180        1130
Swap:          2047         368        1679
[centos@centos shell]$ vim useCache.sh
echo "このスクリプトを使用して、現在のシステムメモリ使用率を確認できます"
use=$(free -m | grep Mem: | awk '{print $3}')
total=$(free -m | grep Mem: | awk '{print $2}')
useper=$(expr $use \* 100 / $total)
echo "システムの現在のメモリ使用率: "
echo ${useper}%
[centos@centos shell]$ chmod +x useCache.sh
[centos@centos shell]$ ./useCache.sh
このスクリプトを使用して、現在のシステムメモリ使用率を確認できます
システムの現在のメモリ使用率:
27%
[centos@centos shell]$

2.スペースで区切って、各行にフィールドがいくつあるかを示します

[centos@centos shell]$ vim file
aaaaaaaa bbbbb ccccc dddddd eeeee fffffff

bbbbbbbbbb aaaaa ccccccc ddddddddd eeeeeeeeee

ccccccc bbbbbbb eeeeee hhhhhhhhh

eeeeee ffffff

ffffff
[centos@centos shell]$ awk '{print NF}' file
6
0
5
0
4
0
3
0
2
0
1

3.スペースで区切って、ファイル内の4つ以上のフィールドを含む行を表示します

[centos@centos shell]$ awk 'NF>4 {print}' file
aaaaaaaa bbbbb ccccc dddddd eeeee fffffff
bbbbbbbbbb aaaaa ccccccc ddddddddd eeeeeeeeee
[centos@centos shell]$

4.各行の行番号を表示します

[centos@centos shell_study]$ awk '{print NR, $0}' file
1 aaaaaaaa bbbbb ccccc dddddd eeeee fffffff
2
3 bbbbbbbbbb aaaaa ccccccc ddddddddd eeeeeeeeee
4
5 ccccccc bbbbbbb eeeeee hhhhhhhhh
6
7 fffff hhhhhhh yyyyyyyy
8
9 eeeeee ffffff
10
11 ffffff
[centos@centos shell_study]$ awk 'NR==5 {print}' file
ccccccc bbbbbbb eeeeee hhhhhhhhh

5.最初の行を表示しない

[centos@centos shell_study]$ route -n | awk 'NR!=1{print}'
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.150.1   0.0.0.0         UG    100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.150.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
[centos@centos shell_study]$ route -n | awk 'NR>1{print}'
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.150.1   0.0.0.0         UG    100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.150.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

6.ファイル内の root を含む行をマッチ

[centos@centos shell_study]$ awk -F: '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

7.ファイル内の root を含む行をマッチしない

[centos@centos shell_study]$ awk -F: '!/root/' /etc/passwd

8.ファイル内の空の行の行番号をマッチ

[centos@centos shell_study]$  awk '{if($0~/^$/)print NR}' file
2
4
6
8
10
[centos@centos shell_study]$ awk -F: '{if($3>100)print "LARGE";else print "SMALL"}' /etc/passwd

シェルコマンドawk


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?