linux 管道命令 小记

时间:2023-03-09 08:02:24
linux    管道命令 小记

管道命令(pipe)

使用“|”界定符号

管道命令必须能够接收来自前一个命令的数据成为standard input才能继续处理

1.选取命令:cut, grep。分析数据,取出我们想要的。

-cut 将一段信息中的某一段“切”出来,以“行”为单位,取出某个部分。

cut -d '分隔符号' -f fields     用于分割符类(-f fields取出第几段的意思  -f 5第五段  -f 3,5 第三段和第五段)

cut -c 字符范围                  用于排列整齐,具有格式的信息(-c 范围 ,以字符为单位取出固定区间 cut -c 12-20 )

-gerp 分析一行信息,包含所需要的,就将整行拿出来

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

-a:将二进制文件以text文件的方式查找数据

-c:计算找到查找字符串的次数

-i:忽略大小写

-n:输出行号

--color=auto:关键字上色

例:last | grep 'root'

last | grep 'root' | cut -d ' ' f1

2.排序命令  sort ,wc ,uniq

-sort 依据不同数据类型排序

sort [-fbMnrtuk] [file or stdin]   ( -n使用纯数字排序  -r反向排序   -u相同数据仅出现一行   -t分隔符     -k区间)

例: cat  /etc/passwd   | sort -t ':' -k 3 -n

-uniq 重复数据处理

uniq  [ic]

-i 忽略大小写

-c 进行计数

例: last | cut -d ‘ ’ -f1 | sort |uniq

-wc  统计文件的行数, 字符数,字数

wc [-lwm]

-l:行

-w:字

-m:字符

例: cat /etc/man.config | wc

3.双重定向 tee 让standard out转存一份到文件内并将同样的数据继续传送到屏幕处理

例:ls -l  /home | tee ~/homefile |more

4.字符转换命令 tr ,col ,join, paste, expand

-tr 删除信息中的文字或者进行替换

tr [-ds]    set1   (-d删除  -s替换)

例: last | tr '[a-z]' '[A-Z]'

cat /etc/passwd | tr -d ':'

-col [-xb] 将tab替换为空格

-join 处理两个文件之间的数据,使用join之前,先进行sort排序

join [-ti12] file1 file2

-t 分割数据符,默认为空格

例:join -t ':' -1 4 /etc/paswd -2 3 /etc/group

-split切割命令

split [-bl] file PREFIX

-b 欲切割文件大小

-l 以行数进行切割

例: ls -al / | split -l 10 - lsroot

wc -l lsroot*