シェルプログラミング正規表現awkツールの使用

記事ディレクトリ

1.シェルプログラミングの正規表現-awkツールの使用

1. awkの組み込み変数

Awkには、次のようないくつかの特別な組み込み変数(直接使用できる)が含まれています。

  • FS:各テキスト行のフィールド区切りを指定します。デフォルトはスペースまたはタブストップです。
  • NF:現在処理されている行のフィールド数。
  • NR:現在処理されている行の行番号(序数)。
  • $ 0:現在処理されている行全体。
  • $ n:現在処理されている行のn番目のフィールド(n番目の列)。
  • FILENAME:処理中のファイルの名前。
  • RS:データレコードの分離。デフォルトは\ n、つまり1行に1レコード。

2. / etc / passwdのユーザー名、ユーザーID、およびグループIDを確認します

awk -F: '{print $ 1、$ 3、$ 4}' / etc / passwd

マーク

3.すべてのコンテンツを出力します。これはcat test.txtと同等です

awk '{print}' test.txt

マーク

4.すべてのコンテンツを出力します。これはcat test.txtと同等です

awk '{print $ 0}' test.txt

マーク

5.行1〜3の内容を出力します

awk 'NR == 1、NR == 3 {print}' test.txt

マーク

6. 1〜3行目の内容を出力する

awk '(NR> = 1)&&(NR <= 3){print}' test.txt

マーク

7. 1行目と3行目の内容を出力します

awk 'NR == 1 || NR == 3 {print}' test.txt

マーク

8.すべての奇数行の内容を出力します

awk 'NR%2 == 1 {print}' test.txt

マーク

9.すべての偶数行の内容を出力します

awk 'NR%2 == 0 {print}' test.txt

マーク

10. rootで始まる行を出力します

awk '/ ^ root / {print}' / etc / passwd

マーク

11. nologinで終わる行を出力します

awk '/ nologin $ / {print}' / etc / passwd

マーク

12. / bin / bashで終わる行数を数える

grep -c“ / bin / bash $” / etc / passwdと同じ

awk 'BEGIN {x = 0}; // bin / bash $ / {x ++}; END {print x}' / etc / passwd

マーク

13.空白行で区切られたテキスト段落の数を数える

awk 'BEGIN {RS = ""}; END {print NR}' test.txt

マーク

14.各行の3番目のフィールドを出力します(スペースまたはタブストップで区切られています)。

awk '{print $ 3}' test.txt

マーク

15.各行の最初と3番目のフィールドを出力します

awk '{print $ 1、$ 3}' test.txt

マーク

16.パスワードが空のユーザーのシャドウレコードを出力する

awk -F: '$ 2 == "" {print}' / etc / shadow

マーク

17.パスワードが空のユーザーのシャドウレコードを出力する

awk 'BEGIN {FS = ":"}; $ 2 == "" {print}' / etc / shadow

マーク

18.出力は、コロンと、7番目のフィールドに/ bashを含む行の最初のフィールドで区切られます。

awk -F: '$ 7〜 "/ bash" {print $ 1}' / etc / passwd

マーク

19. wc -lコマンドを呼び出して、bashを使用しているユーザーの数をカウントします。

grep -c "bash $" / etc / passwdと同じ

awk -F: '/ bash $ / {print | 「wc -l」} '/ etc / passwd

マーク

20. wコマンドを呼び出し、それを使用してオンラインユーザーの数をカウントします。

awk 'BEGIN {while(“ w” | getline)n ++; {print n-2}}'

マーク

21.ホスト名を呼び出し、現在のホスト名を出力します

awk 'BEGIN {“ホスト名” | getline; print $ 0} '

マーク

22.並べ替えツールの一般的なオプション

  • -f:大文字と小文字を区別しません。
  • -b:各行の前のスペースを無視します。
  • -M:月でソートします。
  • -n:番号でソートします。
  • -r:逆ソート。
  • -u:uniqと同じです。つまり、同じデータの1行のみが表示されます。
  • -t:セパレーターを指定します。デフォルトでは[Tab]を使用して区切ります。
  • -o <出力ファイル>:ソートされた結果を指定されたファイルにダンプします。
  • -k:ソート領域を指定します。

23. / etc / passwdファイルでアカウントを並べ替えます

/ etc / passwdをソートします

マーク

24. / etc / passwdファイルの3番目の列を逆順にソートします

ソート-t ':' -rk 3 / etc / passwd

マーク

25. / etc / passwdファイルの3番目の列をソートし、出力をuser.txtファイルに保存します

sort -t ':' -k 3 / etc / passwd -o user.txt

猫user.txt

マーク

26. uniqツールの一般的なオプション

  • -c:カウント。
  • -d:重複する行のみを表示します。
  • -u:一度だけ現れる行を表示します。

27、ファイル内の重複する行を削除します

uniqテストファイル
マーク

28.ファイル内の重複する行を削除し、行の先頭に繰り返し出現する行の数を表示します

uniq -cテストファイル
マーク

29、ファイル内の重複する行を見つける

uniq -dテストファイル
マーク

30. trツールの一般的なオプション

  • -c:最初の文字セットに属していないすべての文字を置き換えます。
  • -d:最初の文字セットに属するすべての文字を削除します。
  • -s:連続して繰り返される文字を単一の文字として表します。
  • -t:最初の文字セットの文字を2番目の文字セットより多く削除します。

31.入力文字を大文字から小文字に変換する

エコー "KGC" | tr 'A-Z' 'a-z'
マーク

32.入力で繰り返される文字を圧縮する

echo「thisssssssはテストlinnnnnnnnneです。」| tr -s 'sn'
マーク

33、文字列の一部の文字を削除します

エコー "hello world" | tr -d「から」
マーク

おすすめ

転載: blog.csdn.net/weixin_39608791/article/details/107672991