重定向脚本内部的文本块 #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 -perm 644 -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 -i test.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$
###因为匹配是贪婪模式匹配的。 |
|