linuxコマンド#4です。
grepコマンド
文字を検索する
gerep [オプション] <検索パターン> <ファイル名>
<ファイル名>から<検索パターン>に一致する行を取り出す。
[wataru@localhost work]$ cat work.02.txt
2020/07/17
test?cat
123445
[wataru@localhost work]$
[wataru@localhost work]$ grep 17 work.02.txt
2020/07/17
[wataru@localhost work]$ grep -n test work.02.txt
# -nを指定すると行数を出力できる
2:test?cat
[wataru@localhost work]$ grep -i test work.02.txt
# -iを指定すると大文字小文字の区別をしない
test?cat
TEST?CAT
test
testcat
[wataru@localhost work]$ grep -v test work.02.txt
# -vを指定すると一致しなかった行を表示する
2020/07/17
123445
TEST?CAT
[wataru@localhost work]$ grep 't[ef]*' work.02.txt
# 特定の文字列を指定したい場合は、[]というメタ文字を使用する
test?cat
test
testcat
tfst
[wataru@locsalhost work]$ grep 'test[01-10]' work.02.txt
# test01~10までを検索指定している
test01
test02
test03
test04
sedコマンド
ストリームエディタ(非対話型エディタ)
[wataru@localhost work]$ cat work.02.txt
# work.02.txtの全量
2020/07/17
test?cat
123445
TEST?CAT
test
testcat
tfst
test01
test02
test03
test04
[wataru@localhost work]$ sed 1d work.02.txt
# 1dで1行目を削除する意味
test?cat
123445
TEST?CAT
test
testcat
tfst
test01
test02
test03
test04
[wataru@localhost work]$ sed 1,5d work.02.txt
# ,[カンマ]で「n行目~m行目まで」と指定可能
testcat
tfst
test01
test02
test03
test04
[wataru@localhost work]$ sed '4,$d' work.02.txt
# $を指定することで最終行まで削除することが可能
# 4行目~最終行目
2020/07/17
test?cat
123445
[wataru@localhost work]$ sed -n 2p work.02.txt
# 行を表示するpに-nオプションを追加すると、特定の行を出力する
test?cat
awkコマンド
パターン検索
テキストの検索、抽出・加工などの編集処理をする
[wataru@localhost work]$ ls -l
total 8
drwxrwxr-x. 2 wataru wataru 6 Jul 5 04:38 gogodur
drwxrwxr-x. 3 wataru wataru 156 Jul 17 04:25 testgo
-rw-rw-r--. 1 wataru wataru 83 Jul 29 05:56 work.02.txt
-rw-rw-r--. 1 wataru wataru 0 Jul 5 04:09 work.03.txt
-rw-rw-r--. 1 wataru wataru 25 Jul 21 04:32 work.04.txt
-rw-rw-r--. 1 wataru wataru 0 Jul 5 04:09 work.05.txt
-rw-rw-r--. 1 wataru wataru 0 Jul 5 04:09 work.06.txt
-rw-rw-r--. 1 wataru wataru 0 Jul 5 04:09 work.07.txt
-rw-rw-r--. 1 wataru wataru 0 Jul 5 04:09 work.08.txt
-rw-rw-r--. 1 wataru wataru 0 Jul 5 04:09 work.09.txt
[wataru@localhost work]$ ls -l | awk '{print $1}'
# awkでよく使用される処理は、特定のフィールドを抽出して表示する、列選択
# フィールド1番を抽出している
total
drwxrwxr-x.
drwxrwxr-x.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
[wataru@localhost work]$ ls -l | awk '{print $1,$9}'
# フィールドを複数選択することも可能
total
drwxrwxr-x. gogodur
drwxrwxr-x. testgo
-rw-rw-r--. work.02.txt
-rw-rw-r--. work.03.txt
-rw-rw-r--. work.04.txt
-rw-rw-r--. work.05.txt
-rw-rw-r--. work.06.txt
-rw-rw-r--. work.07.txt
-rw-rw-r--. work.08.txt
[wataru@localhost work]$ echo 100 300 | awk '{print $1}'
100
[wataru@localhost work]$ echo 100 300 | awk '{x=$1*$2; print x}'
# awkは計算も可能
# 計算結果をx変数に格納して、その結果を出力することも可能
30000
[wataru@localhost work]$ seq 1 10 | awk '{x=x+$1; print x, $1}'
# seqコマンドで1~10までの数字を出力します
# awkコマンドで入力の1~10までの数字を足してその結果を出力
1 1
3 2
6 3
10 4
15 5
21 6
28 7
36 8
45 9
55 10