linux基础2(字符管理) - Go语言中文社区

linux基础2(字符管理)



grep

grep -o root passwd  匹配关键字体

grep -n root passwd 显示行数

grep -i root passwwd 忽略大小写

grep -v root passwd 查找不包含root的内容

grep -A 5 ntp passwd 显示ntp后5行

grep -B 5 ntp passwd 显示ntp前5行

grep -C 5 ntp passwd 显示ntp前后5行

grep --color=auto  root passwd  字体带颜色

. *任意长度的字符

[ ] 匹配指定字符组内的任一字符 

[^] 匹配不在指定字符组内的任一字符

^[ ] 匹配以指定字符组内的任一字符开头 

^[^] 匹配不以指定字符组内的任一字符开头


grep -E (egrep) 扩展正则表达式

+              匹配一个或多个前导字符

?               匹配零个或一个前导字符

a|b            匹配a或b

( )              组字符 hello myself yourself   (my|your)self

x{m}         前导字符x重复m次

[:alnum:]          字母与数字字符

[:alpha:]     字母字符(包括大小写字母)

[:blank:]     空格与制表符       

[:digit:] |    数字

[:lower:]      小写字母

[:upper:]     大写字母

[:punct:]     标点符号 

[:space:]    包括换行符,回车等在内的所有空白


vim /etc/bashrc 添加字符颜色

unalias grep 取消字体颜色

soure /etc/bashrc  重新加载

grep ^# linux                                    以#号开头的行

grep ^$ linux                                     空行

grep -v -e ^$  -e ^# linuxx    

grep -w root linux                               root所在的行 并标识root

grep -v ^# linux | grep -v ^$

egrep -v '(^#|^$)' linux                      不显示空行和带#号开头的行

grep "/<good" linux                            good所在的行(goodb可以显示)

grep "?/<good>/" linux                       good所在的行(goob不能显示)  例最后一个                                                                                                                        单词为goodb

grep '/'^gmae linux                               显示^game 特殊符号显示用‘/’

grep ens33$ linux                                   以ens33结尾的行

grep [o-z] linux                                       显示出带o-z字母的单词

grep ^T? linux                                         标出T开头的行

grep ^T+ linux                                        只显示T开头的行

grep '(^A|^a)' linux                                 A a开头的行


sed

sed '1d' linux                                          删除第一行

sed '1,3d' linux                                       删除1-3行

sed '2,$d' linux                                        删除2到末行

sed '/link/d' llinux                                   删除含link的行

(加-i  彻底删除)

sed '/ens33/p' linux                                  ens33的行 +1

sed '/^[Aa]pple/p' linux                           [Aa]pple开头的行 +1

sed -ne '1,2p' -e '/game/p' linux              1-2行内的含有game的行+1

sed -e '1,3d' -e 's/game/ok/p' linux         删除1-3行 含有game的行+1 并把game改为ok

sed '2,/apple/p' linux                               第二到含apple开头的行+1


sed -n '/ens33/p' linux                              只显示含ens33的行

sed -n 's/game/123/p' linux                      只显示game的行 并把game改为123

sed -n 's/game/123/gp' linux                    只显示game的行 并把game改为123(整行替换) 

sed -n 's/game$/linux./p' linux                  只显示game的行 以game结尾的后面加linux.

sed -n 's/game$/&.linux/p' linux               只显示game的行  在game后面加上.linux

sed 's/game$/&.linux/p' linux                   显示所有行 game行+1 并在game后面加.linux

sed 's/game$/&.linux/' linux                      显示所有行 并在game后面加.linux

sed '/Apple/r io' linux                                把文件io的内容全部写到Apple的下一行

sed '/Apple/w io' linux                               把Apple整行的内容写到io中 (覆盖)

sed '/game/a---linux---' linux                  在game的下一行插入---linux---

sed 'y/game/GAME/p' linux                       把字母game改成大写GAME


awk

awk 'NR==4' linux                                        显示第四行

awk '/game/' linux    (grep game linux)

awk /game/ linux      (grep -n '/game/p'  linx)      

  显示含有game的行

cat linux | grep -w game | awk '{print $2}'    取含有game的行的第二列

awk ''/game/{print $2}' linux

awk -F " " 'NR==5{print $2}' linux                 空格为分界符 取第五行的第二列

df -h | awk '{print $2}'                                   取df- h的第二列

df -h | awk '{print $3,$5}'                               ---------3 5列

date | awk '{print "Year:" $1 "nMonth:" $2}'      Year:2018

                                                                            Moth: 09

cut

cut -d " " -f 2 linux                                       截取第二列

cut -d " " -f 1,3 linux                                     截取一三列

cut -d: -f1 passwd  截取第一列d后面为分隔符

cut -d: -f1,3 passwd

cut -c1-6 passwd 前6个字符的列

cut -c6-12 passwd

cu -c6- passwd  6到最后


sort:将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较

-u :去除重复行

-r :降序排列,默认是升序

-o : 将排序结果输出到文件中  类似 重定向符号>

-n :以数字排序,默认是按字符排序

-t :分隔符

-k :第N列

-b :忽略前导空格。

-R :随机排序,每次运行的结果均不同。

sort -nr -t: -k3 passwd 分隔符为:第三列 降序

sort -n linux                                                 按1-11排序

sort -n -r linux                                              按11-1排序

sort -k 2 linux                                               第二列按a-z排序

sort -k 2 -r linux                                            第二列按z-a排序

sort u config                                                  删除重复行

sort -nu 1.txt -o 2.txt 重定向


tee工具

tee工具从标准输入读取并写入标准输出和文件,即:双向覆盖重定向<屏幕输出|文本输入>

-a 双向追加重定向

echo hello | tee 1.txt   

echo world | tee -a 1.txt 追加

paste工具

paste工具用于合并文件行

-d:自定义间隔符,默认是tab

-s:串行处理,非并行


paste 1.txt 2.txt 合并

paste -d@ 1.txt 2.txt 文件间的分隔符为@

paste -s 1.txt 2.txt 串行处理


wc

wc -l /etc/passwd                                        行数

wc -w /etc/passwd                                       字数(单词数)

wc -c /etc/passwd                                                 字节数

wc -lwc /etc/passwd /etc/fstab                            行数字数字节数总量


find

find  / -name config                                             查找指定文件config的路径

find  / -name config*                                            查找所有带config单词的路径         

find  /etc -name ifcfg*                                          查找etc下所有带ifcfg单词的路径

find / -type 

b                                   -块设备

d                                   -目录

c                                    -字符设备文件

p                                    -管道文件

l                                     -符号链接文件

f                                     -普通文件

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/5637a34b24bb
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-12 13:11:56
  • 阅读 ( 1042 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢