重定向脚本内部的文本块
#cat <<EOF> log.txt
然后中间输入的内容就会出现在log.txt中
2.自定义文件描述符
其实就是临时性的给文件内容一个变量作为代号,然后等用过了之后就返回给系统,再次cat的时候就是空的,届时需要重新exec一下
创建一个文件描述符用于写入(截断模式)
其实就是>和>>的。只是用了一个数字可以作为临时的变量引用一下而已。
使用cat压缩连续的空白行
#cat -s filename (也可以使用cat filename |tr -s '\n')
讲到tr就说下怎么替换大小写等,如果我要把输出的小写全变成大写,那就
#使用find
find . \( -name"*.txt" -o -name "*.log" \) -print
这里的\( \)其实就是转义,当成括号用,是一个整体
找到文件并删除
find . -type f -name"*.log" -delete
#find与exec的结合
find . -type f -perm644 -exec cp {} /tmp \;
这样就可以将find到的东西cp到tmp目录,这是xargs无法做到的
find . \( -name "*.sh" -prune \) -o \( -type f -print \)
就是将sh结尾的排除掉
find . \( -path./test \) -prune -o -print
这个是排除了这个目录下面test目录中区查找
find . \( -path ./test \) -prune -o \( -name "*.sh" \)这个就是除了这个目录之外的以sh结尾的文件
利用xargs 将换行符替换成空格符
也可以一行成多行的形式
cat example.txt|xargs -n 3
就是将一个文件一个脚本结合起来,简单地说,xargs就是将前面所得到的结果放到他的命令的最后面。
#chattr +i test.txt
#这样之后就无能修改这个文件了
还原的就是chattr -itest.txt
file test.txt
file-b test.txt 区别就是不输出文件名了
#grep *** filename -q 这样就不会打印出来,
练习
#grep -I "^s"/proc/meminfo
2.显示/etc/passwd 中以nologin结尾的行
grep "nologin$" /etc/passwd
3.显示/etc/inittab中以#开头并且后面跟一个或多个空的字符而后又跟了任意非空白的行
grep "^#[[:space:]].*[^[:space:]].*"/etc/inittab
grep "^#[[:space:]]\{1,\}[^[:space:]].*" /etc/inittab
4.显示/boot/grub/grub.conf文件中以一个或多个空白的字符开头的行
grep"^[[:space:]].*" /boot/grub/grub.conf
grep"^[[:space:]]\{1,\}" /boot/grub/grub.conf
5.显示/etc/inittab中包含一个:数字:的行
grep ':[0-9]\{1,\}:'/etc/passwd
6.显示/etc/inittab中以一个数字开头并以一个5开头,数字相同的数字结尾的行
找到文件中的一位数或者2位数 /proc/cpuinfo /proc/meminfo
egrep '\<[0-9]{1,2}\>'/proc/meminfo
找出ifconfig命令结果中的1~255之间的整数
词首词尾锚定对于数字来说是不能生效的
查找出当前系统上名为student(必须出现在行首)的用户账号的相关信息,文件为/etc/passwd
######匹配1~93
#####^[1-8]{2}$|^[1-9]$|^89$|^9[1-3]$|^[1-8]0$
###因为匹配是贪婪模式匹配的。
联系客服