テスト効率が倍増!shell高次コマンド早くget下へ!
4045 ワード
背景
現在、ほとんどのプロジェクトはLinuxシステムに配備されており、テストとしてよく使われるLinuxコマンドを身につけるには必須のスキルです.何年も働いている多くのテスト担当者は、ls、cd、catなどの簡単なコマンドしかできません.これらのコマンドは、仕事に対処できるほとんどのシーンです.しかし、本当にテストの効率を高め、自分の核心競争力を高めるには、これらはまだ十分ではありません.テスト作業では、分析/統計ログ、自動化導入など、テキストファイルと付き合う必要がある場合が多いので、今日は実用的な高次テキスト処理コマンドをいくつか紹介します.
cut
このコマンドの主な役割は、コンテンツの中で取得したいものを選択することです.通常、選択情報は「行」と分析され、「文字間隔で」テキストの内容を処理するのが得意です.構文の形式:
パラメータ
説明
-c
文字単位で分割
-d
カスタム区切り文字、デフォルトはタブ
-f
-dとともに使用し、どの領域を表示するかを指定します.
例:新しい練習ファイルを作成します.内容は次のとおりです.
1、各行の4文字目以降の内容を表示する
2、「空白文字」を区切り文字として、2列目の内容を表示する.
sort
ファイルの各行を単位として、互いに比較し、比較原則は先頭文字から後ろに、順にASCIIコード値に従って比較し、最後に昇順に出力します.構文の形式:
パラメータ
説明
-n
純粋な数字で並べ替えられますが、デフォルトでは文字の形で並べ替えられます.
-r
逆ソート
-t
区切り文字、デフォルトはtabキーで区切ります
-k
その区間でソートする
例:上記のtestに従う.txtファイル1は、空白文字を区切り文字として、2列目の内容を昇順に並べ替える
2、空白文字を区切りとして、3列目の年齢フィールドを降順に並べる
uniq
ファイル内の重複部分をフィルタし、sortと組み合わせて(重複データが隣接する)構文フォーマットをよく使用します.
パラメータ
説明
-i
大文字と小文字の違いを無視
-c
テキスト行の出現回数
-u
重複しない行のみ表示
例:新規テキストファイルは次のとおりです.
1、名前の重複を除去するデータはsortソートとuniqの重複を結合する(重複するデータが隣接することを前提とする)
2、1行あたりの出現回数を統計する
wc
統計ファイルの中に何行、何単語、何文字の文法フォーマットがありますか.
パラメータ
説明
-l
行数のみ表示
-w
どれだけの単語(英語の単語)をリストしますか?
-m
文字数
例:test 2.txtファイル例1、統計ファイルの行数
2、統計文字数
総合例
上のdemoでは、これらのコマンドの基本的な使い方を紹介しています.次に、実戦例のドメイン名の情報を次のように書いてみましょう.ドメイン名を取り出してカウントし、ドメイン名の出現回数に応じて降順に並べ替えます.
手順分解:1、先にドメイン名を分離する
2、比較並べ替え
3、各行の出現回数を統計する
4、第一列のフィールド(数字)によって降順に並べ替える
現在、ほとんどのプロジェクトはLinuxシステムに配備されており、テストとしてよく使われるLinuxコマンドを身につけるには必須のスキルです.何年も働いている多くのテスト担当者は、ls、cd、catなどの簡単なコマンドしかできません.これらのコマンドは、仕事に対処できるほとんどのシーンです.しかし、本当にテストの効率を高め、自分の核心競争力を高めるには、これらはまだ十分ではありません.テスト作業では、分析/統計ログ、自動化導入など、テキストファイルと付き合う必要がある場合が多いので、今日は実用的な高次テキスト処理コマンドをいくつか紹介します.
cut
このコマンドの主な役割は、コンテンツの中で取得したいものを選択することです.通常、選択情報は「行」と分析され、「文字間隔で」テキストの内容を処理するのが得意です.構文の形式:
$ cut -c
$ cut -d “ ” -f fields
パラメータ
説明
-c
文字単位で分割
-d
カスタム区切り文字、デフォルトはタブ
-f
-dとともに使用し、どの領域を表示するかを指定します.
例:新しい練習ファイルを作成します.内容は次のとおりです.
[root@localhost shellTest]# cat test.txt
01 nick 20
02 rose 25
03 jack 30
04 tom 27
1、各行の4文字目以降の内容を表示する
[root@localhost shellTest]# cut -c 4- test.txt
nick 20
rose 25
jack 30
tom 27
# :
# 4- 4
# 4-10 4 10
# -4 4
2、「空白文字」を区切り文字として、2列目の内容を表示する.
[root@localhost shellTest]# cut -d " " -f 2 test.txt
nick
rose
jack
tom
sort
ファイルの各行を単位として、互いに比較し、比較原則は先頭文字から後ろに、順にASCIIコード値に従って比較し、最後に昇順に出力します.構文の形式:
$ sort [-nrtk] [file]
パラメータ
説明
-n
純粋な数字で並べ替えられますが、デフォルトでは文字の形で並べ替えられます.
-r
逆ソート
-t
区切り文字、デフォルトはtabキーで区切ります
-k
その区間でソートする
例:上記のtestに従う.txtファイル1は、空白文字を区切り文字として、2列目の内容を昇順に並べ替える
[root@localhost shellTest]# sort -t " " -k 2 test.txt
03 jack 30
01 nick 20
02 rose 25
04 tom 27
2、空白文字を区切りとして、3列目の年齢フィールドを降順に並べる
[root@localhost shellTest]# sort -t " " -k 3 -nr test.txt
03 jack 30
04 tom 27
02 rose 25
01 nick 20
# :
# , n
# sort , r
uniq
ファイル内の重複部分をフィルタし、sortと組み合わせて(重複データが隣接する)構文フォーマットをよく使用します.
$ uniq [-icu]
パラメータ
説明
-i
大文字と小文字の違いを無視
-c
テキスト行の出現回数
-u
重複しない行のみ表示
例:新規テキストファイルは次のとおりです.
[root@localhost shellTest]# cat test2.txt
01 nick 20
02 tom 25
03 jack 30
04 rose 25
03 jack 30
1、名前の重複を除去するデータはsortソートとuniqの重複を結合する(重複するデータが隣接することを前提とする)
[root@localhost shellTest]# sort test2.txt | uniq
01 nick 20
02 tom 25
03 jack 30
04 rose 25
2、1行あたりの出現回数を統計する
[root@localhost shellTest]# sort test2.txt | uniq -c
1 01 nick 20
1 02 tom 25
2 03 jack 30
1 04 rose 25
wc
統計ファイルの中に何行、何単語、何文字の文法フォーマットがありますか.
$ wc [-lwm]
パラメータ
説明
-l
行数のみ表示
-w
どれだけの単語(英語の単語)をリストしますか?
-m
文字数
例:test 2.txtファイル例1、統計ファイルの行数
[root@localhost shellTest]# wc -l test2.txt
5 test2.txt
2、統計文字数
[root@localhost shellTest]# wc -m test2.txt
55 test2.txt
総合例
上のdemoでは、これらのコマンドの基本的な使い方を紹介しています.次に、実戦例のドメイン名の情報を次のように書いてみましょう.ドメイン名を取り出してカウントし、ドメイン名の出現回数に応じて降順に並べ替えます.
[hhy@localhost shellTest]$ cat domain.txt
http://www.lemfix.com/index.html
http://www.lemfix.org/1.html
http://post.lemfix.org/index.html
http://mp3.lemfix.org/index.html
http://www.lemfix.org/3.html
http://post.lemfix.org/2.html
手順分解:1、先にドメイン名を分離する
[hhy@localhost shellTest]$ cut -d "/" -f 3 domain.txt
www.lemfix.com
www.lemfix.org
post.lemfix.org
mp3.lemfix.org
www.lemfix.org
post.lemfix.org
2、比較並べ替え
[hhy@localhost shellTest]$ cut -d "/" -f 3 domain.txt | sort
mp3.lemfix.org
post.lemfix.org
post.lemfix.org
www.lemfix.com
www.lemfix.org
www.lemfix.org
3、各行の出現回数を統計する
[hhy@localhost shellTest]$ cut -d "/" -f 3 domain.txt | sort | uniq -c
1 mp3.lemfix.org
2 post.lemfix.org
1 www.lemfix.com
2 www.lemfix.org
4、第一列のフィールド(数字)によって降順に並べ替える
[hhy@localhost shellTest]$ cut -d "/" -f 3 domain.txt | sort | uniq -c | sort -k 1 -nr
2 www.lemfix.org
2 post.lemfix.org
1 www.lemfix.com
1 mp3.lemfix.org