見出し画像

役に立つLinuxコマンド2【Shell】

実務で利用している便利コマンドを紹介

ファイルの各行にいくつ区切り(カラム)があるかを調べるコマンド

調査対象ファイル(hoge.csv)の中身

調査したいファイルの中身は以下のようなファイルです。

[ec2 ~]$ cat hoge.csv
name,age,gender,tel,mail
山田,25,女,0801111-2222,yamada@mail
佐藤,30,男,0801111-2223,sato@mail
田中,35,女,0801111-2224,tanaka@mail
山本,40,男,0801111-2225,yamamoto@mail
(おなじようなデータが以後数万行ある)

調査コマンド

1.各行のカンマの数を数え、ファイルに出力

[ec2 ~]$ awk '{print gsub(/\,/,"")}' hoge.csv > karamu.txt

2.行とカラム数を表示

[ec2 ~]$ cat -n karamu.txt |head -10
1  5
2  5
3  5
4  5
5  5
6  5
7  5
8  5
9  5
10  5

# 行数が違うところだけみたい場合は、以下のようなコマンド
[ec2 ~]$ cat -n karamu.txt |grep -v 5
212339  6
212340  6
212341  6
212342  6
212352  6
212353  6
212354  6
212355  6
212356  6

行数が少ない場合は、以下のコマンドで一括で出力できます。

[ec2 ~]$ awk '{print gsub(/\,/,"")}' hoge.csv | cat -n
1  5
2  5
3  5
4  5
5  5

カンマ区切りでなく、タブ区切りの場合は以下

[ec2 ~]$ awk '{print gsub(/\t/,"")}' fuge.tsv | cat -n
1  7
2  7
3  8
4  7
5  7

このあたりのコマンド(特にawkコマンド)は、
使いこなせるようになるととても便利です。

サーバ名からIPを検索する

aws ec2 describe-instances  --filters "Name=instance-state-name,Values=running" --query 'sort_by(Reservations[*].Instances[*].{Name:Tags[?Key==`Name`].[Value][0][0],ID:InstanceId,IP:PrivateIpAddress,Type:InstanceType}[0],&Name)'  --output table "Name=tag-value,Values=*prd-actproc*"
  結果として以下のようにでます
  --------------------------------------------------------------------------------
  |                               DescribeInstances                              |
  +----------------------+----------------+-------------------------+------------+
  |          ID          |      IP        |          Name           |   Type     |
  +----------------------+----------------+-------------------------+------------+
  |  i-0b09ee819275d3333 |  xxx.xx.xx.xx  |  hogehoge-server        |  r4.large |
  |  i-0fd509551a6074444 |  xxx.xx.xx.yy  |  fugafuga-server        |  m4.large |
  |  i-0c777dc2192435555 |  xxx.xx.xx.zz  |  hogefuga-server        |  r5.xlarge |


他にも便利なコマンドを知っているという方は、
コメントで教えてください。

参考書籍

基本からきちんと学びたい方は、以下がおすすめです。


よいと思ってもらえたら、「スキ」をお願いします。
「スキ」は、継続の源泉です。


この記事が参加している募集

スキしてみて

いつもサポートありがとうございます。 あなたの100円がモチベーションアップの起爆剤です。 毎日更新頑張ります Twitterはこちら https://twitter.com/7010Rei