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 5 years have passed since last update.

Linuxコマンド#4

Posted at

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
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?