日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 管道使用方法,Linux 管道命令

發布時間:2025/4/5 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 管道使用方法,Linux 管道命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cut

在一行中取出部分數據,以行為單位

cut -d '分隔符 ' -f fields

$ pwd /home/users/chenzhaoqun

$ pwd | cut -d '/' -f 1

$ pwd | cut -d '/' -f 2

home

$ pwd | cut -d '/' -f 3

users

$ pwd | cut -d '/' -f 4

chenzhaoqun

$ pwd | cut -d '/' -f 3,4

users/chenzhaoqun

cut -c 字符范圍

以字符為單位取出固定字符區間

$ export

declare -x ANT_HOME="/home/tools/tools/ant/apache-ant-1.6.5"

declare -x ANT_HOME_1_7="/home/tools/tools/ant/apache-ant-1.7.1" declare -x G_BROKEN_FILENAMES="1"

$ export | cut -c 12-

ANT_HOME="/home/tools/tools/ant/apache-ant-1.6.5" ANT_HOME_1_7="/home/tools/tools/ant/apache-ant-1.7.1" G_BROKEN_FILENAMES="1"

$ export | cut -c 12-15

ANT_

ANT_

G_BR

grep

分析一行,有我們需要的信息就將該行拿出來

grep [-acinv] [--color=auto] '查詢字符串' filename

-a

將二進制文件以text方式查詢

-c

計算找到字符串的次數

-i

忽略大小寫

-n

輸出行號

-v

反向選擇,顯示不包含‘查詢字符串’的行

表2-1 grep使用的正則表達式元字符

元字符

功能

示例

匹配對象

^

行首定位符

‘^love’

匹配所有以love開頭的行

$

行尾定位符

‘love$’

匹配所有以love結尾的行

.

匹配單個字符

‘l..e’

匹配包含一個l,后面跟兩個字符,再跟一個e的行

*

匹配0或者多個重復的位于*前的字符

‘*love’

匹配包含跟在0個或者多個字符后的love的行

[]

匹配一組字符中的任意一個

‘[Ll]ove’

匹配Love或者love

[^]

匹配不在指定組內的字符

’[^A-Z]’

匹配不在范圍A至Z之間的任意一個字符

<

詞首定位符

匹配包含以love開頭的詞的行

<

詞尾定位符

‘love/>’

匹配包含以love結尾的詞的行

(..)

標記匹配到的字符

’(love)ing’

模式love被保存在1號寄存器中,之后可用\1引用它

x{m}或x{m,}或x{m,n}

字符x的重復次數:m次、至少m次、至少m次但不超過n次

‘o{5}’,’o{5,}’ ,’o{5,10}’

匹配連續出現5個o、至少5個o或者5~10個o的行

其他方法:

1、使用多個 -e 參數

如:netstat -an | grep -E "ESTABLISHED|WAIT"

注意:netstat -an | grep -e EST -e WAIT 并列使用多個 -e參數可以實現或條件

2、使用擴展

如:netstat -an | grep -E "ESTABLISHED|WAIT"

注意:此處的 -E 是大寫 ,匹配條件一定要加 引號

sort

sort [-fbMnrtuk] [file or stdin]

-f

忽略大小寫

-b

忽略行前的空格

-M

以月份的名字來排序,JAN > DEC

-n

使用“純數字”排序

-r

反向排序

-u

uniq

-t

指定分隔符,默認是TAB

-k

以分割之后的哪個field來排序

uniq

uniq [-ic]

-i

忽略大小寫

-c

進行計數

$ last | cut -d ' ' -f1 | sort | uniq -c | sort -r -n

345 root

171 duanzhib

126 zouxidon

68 zhouqian

68 chenzhao

37 wangjinl

35 jiangwei

last命令列出最近登錄的用戶列表

第一列為用戶名

最后的結果是按登錄次數逆序的排名

綜合使用案例:

一個文件similog中有很多行:

debug:[一汽%20夏利n5,一汽%20夏利n5][1,2] simi 100, interval 16

想要把simi后面的分數取出來,并統計分布

cat similog | cut -d ']' -f 3 | cut -d ' ' -f 3 | tr -d ',' | sort -n | uniq -c

cat similog 不解釋

cut -d ']' -f 3 取出 simi 100, interval 16

cut -d ' ' -f 3 取出100,

tr -d ',' 刪除,

sort -n 排序

uniq -c 統計出現的次數

tee

tee [-a] file

-a 對file進行續寫,append文件模式

tee是將stdout轉存一份到文件,又不影響stdout的輸出,后面還可以被其他命令處理

字符轉換命令 tr col join paste expand

tr [-ds] SET1 [SET2]

參數

解釋

-d

刪除str

-s

替換掉重復的字符

-t

將SET1按SET2的長度截斷

tr '[a-z]' '[A-Z]'

upper case

col [-xb]

參數

解釋

-x

將tab轉成空格

-b

將/,僅保留/最后接的字符

join [-ti12] file1 file2

將兩個文件的按照第一列合并

參數

解釋

-t

指定列分隔符,默認是空格

-i

忽略大小寫

-1 n

對文件1按第n列比較

-2 n

對文件2按第n列比較

join -1 3 file1 -2 4 file2

這是file1的第3列和file2的第4列,就會合并,然后放到第1列,后面接剩余的數據

注意:對比時兩文件要sort

paste [-d] file1 file2

將兩個文件的每行合并成一行,中間被分隔符分割

參數

解釋

-d

指定分隔符

把file寫成- 表示來自std input的意思

expand [-t] file

將tab轉成空格,-t指定轉成空格的個數

split

split [-bl] file PREFIX

將一個大文件切割成指定大小或指定行的小文件

參數

解釋

-b

按大小分割,可加單位,b, k, m

-l

按行數分割

PREFIX

分割后文件名的前綴

-a

suffix length,默認為2,且是aa,ab,ac…命名

-d

以數字作為后綴

文件合并

使用重定向

如將file1,file2,file3合并成file

cat file1 file2 file3 >> file

cat file* >> file

xargs

xargs [-0epn] command

為command生成參數,并且執行command

因為有些command不支持直接使用管道,可以從stdin讀入,使用空格分割,然后作為command的參數執行

參數

解釋

-0

還原stdin中的特殊字符,如 ` \ 空格等,為一般字符

-e

后面接一個字符串,xargs分析到該字符串時就停止,該字符串不會被使用

-p

每次執行command,都詢問

-n

command使用n個參數,更多的都會忽略

- 減號

可以用-表示stdin或stdout,放在應該寫file的地方

總結

以上是生活随笔為你收集整理的linux 管道使用方法,Linux 管道命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。