91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下常用的過濾操作有哪些

發布時間:2022-02-18 09:43:35 來源:億速云 閱讀:191 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Linux下常用的過濾操作有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

過濾器是一個程序,它從標準輸入讀取數據,在數據上執行操作,然后把結果寫到標準輸出。因此,它可以用來以強大的方式處理信息,例如重新結構化輸出以生成有用的報告,修改文件里面的文本,以及其他很多系統管理任務。

Linux下常用的過濾操作有哪些
Linux 中幾個高效過濾命令Linux 中幾個高效過濾命令

下面是 Linux 上的一些有用的文件或者文本過濾器。

1、 awk 命令

awk 是一個卓越的模式掃描和處理語言,它可被用于在 Linux 下構造有用的過濾器。你可以通過閱讀我們的 awk 系列 1 到 13 部分 來開始使用它。

另外,也可以通過閱讀 awk 的 man 手冊來獲取更多的信息和使用選項。

$ man awk

2、 sed 命令

sed 是一款過濾和轉換文本的強大的流編輯器。我們已經寫了兩篇關于 sed 的有用的文章,你可以通過這兒來了解:

  • 如何使用 GNU sed 命令在 Linux 下創建、編輯和處理文件
  • 日常 Linux 系統管理員任務使用的 15 個有用的 sed 命令小貼士和技巧

sed 的 man 手冊已經添加控制選項和說明:

$ man sed

3、 grep、 egrep、 fgrep、 rgrep 命令行

這些過濾器輸出匹配指定模式的行。它們從一個文件或者標準輸入讀取行,并且輸出所有匹配的行,默認輸出到標準輸出。

注意:主程序是 grep,這些變體與使用特定的選項的 grep 相同,如下所示(為了向后兼容性,它們依舊在使用):

$ egrep = grep -E
$ fgrep = grep -F
$ rgrep = grep -r

下面是一些基本的 grep 命令:

tecmint@TecMint ~ $ grep "aaronkilik" /etc/passwd
aaronkilik:x:1001:1001::/home/aaronkilik:
tecmint@TecMint ~ $ cat /etc/passwd | grep "aronkilik"aaronkilik:x:1001:1001::/home/aaronkilik:

在 Linux 下的 grep、 egrep 和 fgrep 的差異?中,你可以了解更多。

4、 head 命令

head 用于顯示文件前面的部分,默認情況下它輸出前 10 行。你可以使用 -n 標志來指定顯示的行數:

tecmint@TecMint ~ $ head /var/log/auth.log  
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root
Jan  2 10:51:34 TecMint sudo:  tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py
Jan  2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan  2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root
Jan  2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session closed for user root
Jan  2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session closed for user root
Jan  2 11:09:01 TecMint CRON[4146]: pam_unix(cron:session): session opened for user root by (uid=0)
tecmint@TecMint ~ $ head  -n 5 /var/log/auth.log  
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root
Jan  2 10:51:34 TecMint sudo:  tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py
Jan  2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan  2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root

學習如何 使用帶有 tail 和 cat 命令的 head 命令,以便在 Linux 下更有效的使用。

5、 tail 命令

tail 輸出一個文件的后面的部分(默認 10 行)。使用 -n 選項來指定顯示的行數。

下面的命令將會輸出指定文件的最后 5 行:

tecmint@TecMint ~ $ tail -n 5 /var/log/auth.log
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.

另外,tail 有一個特殊的選項 -f ,可以 實時查看一個文件的變化 (尤其是日志文件)。

下面的命令將會使你能夠監控指定文件的變化:

tecmint@TecMint ~ $ tail -f /var/log/auth.log
Jan  6 12:58:01 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 12:58:11 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 12:58:12 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 12:58:12 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.

閱讀 tail 的 man 手冊,獲取使用選項和說明的完整內容:

$ man tail

6、 sort 命令

sort 用于將文本文件或標準輸入的行進行排序。

下面是一個名為 domain.list 的文件的內容:

tecmint@TecMint ~ $ cat domains.list
tecmint.com
tecmint.com
news.tecmint.com
news.tecmint.com
linuxsay.com
linuxsay.com
windowsmint.com
windowsmint.com

你可以像這樣運行一個簡單的 sort 命令 來排序文件內容:

tecmint@TecMint ~ $ sort domains.list
linuxsay.com
linuxsay.com
news.tecmint.com
news.tecmint.com
tecmint.com
tecmint.com
windowsmint.com
windowsmint.com

你可以有多種方式來使用 sort 命令,請參閱以下一些關于 sort 命令的有用的文章。

  • Linux 的 ‘sort’命令的14個有用的范例(一)
  • Linux 的 ‘sort’命令的七個有趣實例(二)
  • 如何基于修改日期和時間來查找和排序文件

7、 uniq 命令

uniq 命令用于報告或者忽略重復行,它從標準輸入過濾行,并且把結果寫到標準輸出。

在對一個輸入流運行 sort 之后,你可以使用 uniq 刪除重復行,如下例所示。

為了顯示行出現的數目,使用 -c 選項,要在對比時忽略大小寫的差異,使用 -i 選項:

tecmint@TecMint ~ $ cat domains.list
tecmint.com
tecmint.com
news.tecmint.com
news.tecmint.com
linuxsay.com
linuxsay.com
windowsmint.com
tecmint@TecMint ~ $ sort domains.list | uniq -c
2 linuxsay.com
2 news.tecmint.com
2 tecmint.com
1 windowsmint.com

通過閱讀 uniq 的 man 手冊來獲取進一步的使用信息和選項:

$ man uniq

8、 fmt 命令行

fmt 是一款簡單的優化的文本格式化器,它重新格式化指定文件的段落,并且打印結果到標準輸出。

以下是從文件 domain-list.txt 提取的內容:

1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com

為了把上面的內容重新格式化成一個標準的清單,運行下面的命令,使用 -w 選項定義最大行寬度:

tecmint@TecMint ~ $ cat domain-list.txt
1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com
tecmint@TecMint ~ $ fmt -w 1 domain-list.txt
1.tecmint.com
2.news.tecmint.com
3.linuxsay.com
4.windowsmint.com

9、 pr 命令

pr 命令轉換文本文件或者標準輸入之后打印出來。例如在 Debian 系統上,你可以像下面這樣顯示所有的安裝包:

$ dpkg -l

為了將要打印的列表在頁面和列中組織好,使用以下命令。

tecmint@TecMint ~ $ dpkg -l | pr --columns 3 -l 20  
2017-01-06 13:19                                                  Page 1
Desired=Unknown/Install ii  adduser             ii  apg
| Status=Not/Inst/Conf- ii  adwaita-icon-theme  ii  app-install-data
|/ Err?=(none)/Reinst-r ii  adwaita-icon-theme- ii  apparmor
||/ Name                ii  alsa-base               ii  apt
+++-=================== ii  alsa-utils            ii  apt-clone
ii  accountsservice     ii  anacron               ii  apt-transport-https
ii  acl                 ii  apache2               ii  apt-utils
ii  acpi-support        ii  apache2-bin           ii  apt-xapian-index
ii  acpid               ii  apache2-data          ii  aptdaemon
ii  add-apt-key         ii  apache2-utils         ii  aptdaemon-data
2017-01-06 13:19                                                  Page 2
ii  aptitude            ii  avahi-daemon          ii  bind9-host
ii  aptitude-common     ii  avahi-utils           ii  binfmt-support
ii  apturl              ii  aview                   ii  binutils
ii  apturl-common       ii  banshee               ii  bison
ii  archdetect-deb      ii  baobab                ii  blt
ii  aspell              ii  base-files            ii  blueberry
ii  aspell-en           ii  base-passwd           ii  bluetooth
ii  at-spi2-core        ii  bash                    ii  bluez
ii  attr                ii  bash-completion     ii  bluez-cups
ii  avahi-autoipd       ii  bc                      ii  bluez-obexd
.....

其中,使用的標志如下:

  • –column 定義在輸出中創建的列數。
  • -l 指定頁面的長度(默認是 66 行)。

10、 tr 命令行

這個命令從標準輸入轉換或者刪除字符,然后輸出結果到標準輸出。

使用 tr 的語法如下:

$ tr options set1 set2

看一下下面的例子,在第一個命令,set1( [:upper:] ) 代表指定輸入字符的大小寫(都是大寫字符)。 set2([:lower:]) 代表期望結果字符的大小寫。第二個例子意思相似,轉義字符 /n 表示在新的一行打印輸出:

tecmint@TecMint ~ $ echo "WWW.TECMINT.COM" | tr [:upper:] [:lower:]
www.tecmint.com
tecmint@TecMint ~ $ echo "news.tecmint.com" | tr [:lower:] [:upper:]
NEWS.TECMINT.COM

11、 more 命令

more 命令是一個有用的文件過濾器,最初為查看證書而建。它一頁頁顯示文件內容,用戶可以通過按回車來顯示更多的信息。

你可以像這樣使用它來顯示大文件:

tecmint@TecMint ~ $ dmesg | more
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.0-21-generic (buildd@lgw01-21) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic4.4.6)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'[    0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'[    0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable
[    0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable
--More--

12、 less 命令

less 是和上面的 more 命令相反的一個命令,但是它提供了額外的特性,而且對于大文件,它會更快些。

按照 more 命令相同的方式使用它:

tecmint@TecMint ~ $ dmesg | less
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.0-21-generic (buildd@lgw01-21) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic4.4.6)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'[    0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'[    0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable
[    0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable
:


關于“Linux下常用的過濾操作有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

姜堰市| 三明市| 弥勒县| 信丰县| 普安县| 锡林浩特市| 土默特左旗| 梧州市| 公安县| 溧水县| 延吉市| 诸暨市| 柳林县| 宜川县| 阳谷县| 伊春市| 峨眉山市| 获嘉县| 清流县| 基隆市| 怀化市| 石柱| 肇源县| 吴江市| 鄄城县| 宜章县| 措勤县| 迭部县| 安图县| 顺义区| 曲周县| 霍州市| 莫力| 永胜县| 博爱县| 卢湾区| 通化市| 香港| 龙州县| 尉氏县| 台湾省|