linuxテキスト処理の一般的なコマンド--初級

4868 ワード

今日はわけがわからなくて自由形ができて、楽しかったです!

1. >


">"はファイルに出力するために使用され、ファイルが存在しない場合はファイルが作成されます.ファイルが存在する場合は、ソースファイルの内容が空になってから書き込みます.
$ echo Hello World > hello.txt  #  'Hello World' hello.txt
$ echo ''>hello.txt # hello.txt 

2. >>


">"とは異なり、">>"記号は元のファイルの内容を空にするのではなく、ファイルの最後に追加します.
$ echo Hello World > hello.txt #  'Hello World' hello.txt
$ echo My name is Leo >> hello.txt #  ''My name is Leo"  hello.txt 

3. |


「|」パイピング記号は、前の出力情報を入力情報として次のコマンドに渡して処理を続行します.
$ ls -a /etc | less #  less  /etc 
$ px -aux | grep nginx #  'nginx' 

4. tee


'tee'は二重配向で、ファイル/デバイスに保存しながら画面に出力し、現在の操作を中断しないことができます.
$ ls | tee save_ls.txt 

5. cut


「cut」は、情報のあるセグメントを切り取り、情報を処理する単位は行です.
$ cat hello.txt #  
hello world
My name is Leo

$ cut -c 2 hello.txt #  
e
y

$ cut -c 2-4 hello.txt #  
ell
y n

$ cut -f 2 -d ' ' hello.txt #   2 , -f  , -d  , TAB
world
name

6.paste


「paste」はcatコマンドと似ていますが、pasteはすべての行を1行にまとめて出力することができます.
$ cat hello.txt  #  
hello
world
$ cat name.txt #  
My
name
is
Leo
$ paste hello.txt #  
hello
world
$ paste name.txt #  
My
name
is
Leo

$ paste -s hello.txt #  hello.txt , TAB 
hello   world

$ paste -s -d ',' name.txt #  
My,name,is,Leo

$ paste -s -d ' ' hello.txt name.txt #  
hello world
My name is Leo

7. head


'head'ファイル/テキストの一番前の情報を表示
$ head -n 15 /var/log/syslog #  15 
$ head -c 15 /var/log/syslog #  15 

8. tail


'tail'はファイル/テキストの一番後ろの情報を表示します
$ tail -n 10 /var/log/syslog #  10 
$ tail -f /var/log/syslog #  ( )

9. expand


'expand'TABをスペースに変換
$ expand -t 4 sample.txt > result.txt #  tab 4 

10. join


「join」は、2つのファイルに同じデータがある行を加算します.順序は一致しなければならない.
$ cat file1.txt
1 Loe
2 Hh
3 Yy
$ cat file3.txt
1 100
2 99
3 88
$ join file1.txt file3.txt
1 Loe 100
2 Hh 99
3 Yy 88

$ cat file1.txt
1 Loe
2 Hh
3 Yy
$ cat file4.txt
100 1
99 2
88 3
$ join -1 1 -2 2 file1.txt file4.txt
1 Loe 100
2 Hh 99
3 Yy 88

11. split


'split'は、1つのファイルを複数のファイルに分割します.
$ ls
file1.txt
$ cat file1.txt
1 Loe
2 Hh
3 Yy

$ split -l 1 file1.txt #  file1.txt 
$ ls #  x** 
file1.txt  xaa  xab  xac 

$ cat xaa
1 Loe
$ cat xab
2 Hh
$ cat xac
3 Yy

11. sort


'sort'はソートに使用されます.
$ sort file1.txt
$ sort -r file1.txt #  

12. uniq


'uniq'は重量除去に使用されます.
$ cat name.txt
Leo
Leo
Hh
Hh
Yy
Yy
Ky
$ uniq name.txt #  , 
Leo
Hh
Yy
Ky
$ uniq -c name.txt #  
      2 Leo
      2 Hh
      2 Yy
      1 Ky
$ uniq -u name.txt #  
Ky

特に注意しなければならないのは、uniqコマンドは連続したデータを再表示するしかありません!
$ cat name.txt
Leo
Hh
Leo
Hh
Yy
Ky
Yy
$ uniq -c name.txt
      1 Leo
      1 Hh
      1 Leo
      1 Hh
      1 Yy
      1 Ky
      1 Yy
$ uniq name.txt
Leo
Hh
Leo
Hh
Yy
Ky
Yy

再操作は、上記の'|'コマンドと'sort'コマンドを組み合わせて処理するのが一般的です.
$ sort name.txt | uniq
Hh
Ky
Leo
Yy

13. wc


'wc'(word count)は、テキスト情報を統計するために使用されます.-l行数-w単語数-cバイト数
$ wc /etc/passwd #      
  29   40 1457 /etc/passwd
$ wc -l /etc/passwd #  
29 /etc/passwd

14. grep


'grep'テキストマッチング.
$ cat test #  
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa
DADddd:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/home/ftp:/bin/false
&nobody:$:99:99:nobody:/:/bin/false
Leo:x:1000:100:,,,:/home/Leo:/bin/bash
http:x:33:33::/srv/http:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
hal:x:82:82:HAL daemon:/:/bin/false
mysql:x:89:89::/var/lib/mysql:/bin/false
aaa:x:1001:1001::/home/aaa:/bin/bash
ba:x:1002:1002::/home/Leo:/bin/bash
test:x:1003:1003::/home/test:/bin/bash
@Loe:*:1004:1004::/home/test:/bin/bash
policykit:x:102:1005:Po

$ grep root test
root:x:0:0:root:/root:/bin/bash #  root 

$ cat test | grep -n root #  root , 
1:root:x:0:0:root:/root:/bin/bash

$ cat test  | grep '^\(root\|http\)' #   root http 
root:x:0:0:root:/root:/bin/bash
http:x:33:33::/srv/http:/bin/false

15. tr


'tr'(translate)は、標準入力から文字を置き換え、縮小、および/または削除し、結果を標準出力に書きます.
$ echo Leo| tr a-z A-Z #  
LEO
$ echo Leo | tr 'e' 'a' # e   a
Lao
$ echo Leo | tr -d 'e' #   d
Lo
$ echo Leeoe | tr -s [a-zA-Z] #  
Leoe