sed:sed -e ‘N‘表示跨一行匹配的意思。sed ‘N;N;s/\n/ /g‘ 1.txt
awk:awk -F ‘:‘ ‘{print $3}‘ passwd.txt 显示一冒号为分隔符的第三段($0就是显示那一整行);
awk -F ‘:‘ ‘{print $1 "aaa" $3}‘ passwd.txt 在第一段和第三段之间加aaa;
rootaaa0
binaaa1
daemonaaa2
awk -F ‘:‘ ‘$3>5‘ passwd.txt 这里的5如果是数字就可以不加双引号,若果是字符就必须加上双引号。
awk -F ‘:‘ ‘/root/{print $1,$3} /mysql/{print $1,$3}‘ passwd.txt 显示包含root的行的第一段和第三段,还有包含mysql的。
awk -F ‘:‘ ‘$1 ~ /oo/‘ passwd.txt 让某一段去匹配
awk的常用变量:NF 用分隔符分割后一共有多少段 NR 行数
awk -F ‘:‘ ‘{print NF}‘ 显示有多少段
awk -F ‘:‘ ‘{print $NF}‘ passwd.txt 显示每行的最后一段$(NF-2)倒数第三段
NR
awk -F ‘:‘ ‘{print NR}‘ passwd.txt显示行号
awk -F ‘:‘ ‘{print $NR}‘ passwd.txt 显示第一行的第一段,第二行第二段。。。。。
awk -F ‘:‘ ‘{(num=num+$3)};END {print num}‘ passwd.txt 计算第三段的和;
egrep -q 禁止所有的输出到标准输出,不管匹配行。如果选中输入行,以 0 状态退出(就是说匹配到的情况不输出出来。)
alias:别名设置alias where=‘pwd‘ 就用where取代了pwd(若想取消这个别名就用:unalias where)。
更改变量:HISTSIZE=2000只能在当前shell中生效,永久生效vim /etc/profile在最后添加信息。
若要变量在所有shell中都可以用,例如a=1,要在所有shell中生效:export a=1即可如果要在所有终端生效在vim /etc/profile里export a=1,如果只有一个用户生效加入到.bashrc里再用source .bashrc
.bashrc 当前用户登录或打开新的shell执行的文件
.bash_logout 退出shell执行文件,echo `date` > /tmp/1.txt source .bash_logout 刷新,下次开机就能看见上次的关机时间。
.bash_profile 用户自己的变量,其他用户不可用
/etc/profile 全局变量
uniq:去重常与sort一起使用(sort 1.txt|uniq -c)
sort:排序 sort -n 升序 sort -r降序 (sort -t : k3 -n 1.txt以冒号为分隔符对第三段进行升序输出)
cut: cut -d ‘:‘ -f1 以冒号为分隔符输出第一段。cut -d ‘:‘ -f1 passwd.txt| cut -c1 以冒号为分隔符输出第一段第一个字符。cut -c1-3也可以是第1到3个字符。
tee:后跟文件名,类似与重定向 >,但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上echo "aaaaaaaaaaaaaaaaaaaaaaaaaaa" |tee testb.txt 结果就是显示aaaaa
tr:替换 cat /etc/passwd|tr ‘[a-z]‘ ‘[A-Z]‘ 所有的小写换成大写。
split:切割文件 格式:split -b500 1.txt 2 加上这个2切开的文件名字就是2aa,2ab...否者就是xaa,xab....