UNIX 读书笔记01
标准输出流默认不能随着管道流下,可以使用如下脚本:
ls n* 2> errors
2> 代表标准错误流的处理方式跟随标准输出流保持一致
vim:
1,$s/^/爱/ 给从第一行开始每行行头加上”爱“
15,$s/$/爱 给从第15行开始每行行尾加上“爱”
1,$s/[0-9]/*/g 将所有的数字替换成*
1,$s/[^*]//g 将所有非*号字符删除掉
1,$s/^.\{10\}//g 删除每行前10个字符
cut:
ls -alh | cut -c1 截取第一个字符
ls -alh | cut -c1-20 截取第1到20个字符
ls -alh | cut -c1,20 截取第1个和第20个字符
ls -alh | cut -c21-
截取从第21个字符后面所有
截取从第21个字符后面所有
cut -d: -f6 passwd
以逗号切割passwd 取第6段
以逗号切割passwd 取第6段
cut -d: -f1-6 passwd 以逗号切割passwd
取第1到6段
取第1到6段
cut -d: -f1-6 passwd 以逗号切割passwd
取第1到6段
取第1到6段
cut -d: -f1,6 passwd 以逗号切割passwd
取第1段和第6段
取第1段和第6段
paste:
sed:
sed ‘s/z/*/’ file 将file每行第一个z替换成*
sed ‘s/z/*/g’ file 将file每行所有的z替换成*
sed -n ‘1,4p’ shadow 只显示1~4行
sed -n ‘/ad/p’ shadow 包括ad的行显示出来
sed ‘1,2d’ names 删除文件中的1~2行
sed ‘/z/d’ names 将包含z的行全部删除
sed ‘2a love’ 在第二行后面追加love
sed ‘2i love’ 在第二行前面追加love
tr:
tr : ^ < shadow 将所有:字符替换成<字符
tr ‘[a-z]’ ‘[A-Z]’ < passwd 将所有小写字符替换成大写字符
tr ‘:’ ‘\11’ < passwd 将所有冒号替换成制表符
已经存储于:h[0][0]c[0][0]
grep:
grep -vn ‘z’ names 显示不包含z的行,并且显示行号
grep -l ‘in’ *.log 在所有的log文件中查找in,只显示文件名
sort:
sort -u names 排序并且去重复
sort -r names 颠倒顺序(倒序)
sort names -o names 将排序后的结果重新写入源文件,此处不能用重定向操作符.重定向会破坏源文件,导致操作失败
sort -n num 按照算术排序(数字排序)
ls -l | sort -k 5 -n 按照第五列进行算术排序(文件大小排序)
uniq:
sort num|uniq 将num中重复行删除(使用sort的原因是将num中的重复行排序成连续行)
sort num|uniq -d 将重复行显示出来
sort num | uniq -c 去重并显示重复次数,该命令带与不带-c选项区别就在于是否会显示重复次数
awk:
cat /etc/passwd | awk -F ‘:’ ‘{print $0}’ 用;分割,打印整行
awk -F ‘:’ ‘{print $1}’ /etc/passwd 用;分割,打印第一列
awk -F ‘:’ ‘BEGIN {print “print file begin”} {print $1} END {print “print file end”}’ /etc/passwd 用;分割,打印第一列,并且在最前最后加上消息
版权声明:本文为博主原创文章,未经博主允许不得转载。