引入:
筛选文本中包括xl的部分
grep xl/etc/passwd 都会出来
grep '\<xl\>' /etc/passwd 只包含以xl开头和结尾的内容
grep , 可以使用扩展的正则表达式来进一步定义关键字, 进行筛选
grep bash /etc/passwd
grep -v bash /etc/passwd 筛选不包括bash字样的内容 -V显示版本
grep -A5 -B5 xl/etc/passwd 显示包含xl的(Before)前5行和后(After)5行
正则表达式: 是为了精确描述需要的内容所设置的,可以用于多个命令 . * [] ^ $ \< \> ...
学习内容
1.对文本文件的操作命令
2.使用正则表达式的命令
3.正则表达式
4.对文本的操作
5.组合命令完成复杂任务
文本文件操作命令
cat 查看文件内容 cat /etc/passwd 实际是对文本的操作,不一定是对文本文件的操作
more 逐屏查看文件内容,仅能向下翻 ,显示完直接退出
less 逐屏查看文件内容 less 来回上下翻, 可以查找, 但是需要交互,需要按交互命令,按"退出"
head 显示文件开头部分内容 查看文件的头10行,
tail 显示文件结尾部分内容 查看文件的末尾10行, -f 可以监视文件日志
如:
tty1 和 tty2两个进程
tty1监控 tail -f /var/log/messages
tty2开启程序 service httpd restart
在tty1 中就能看到程序的启动
diff 报告文件差异
uniq 去除文件中相邻的重复航
cut 只显示文件中的某一列 cut -d: -f1 /etc/passwd
sort 按序重排文本
wc 统计文件的行,词,字数
cut 命令:
cut -f2 /etc/passwd 没有控制住,显示的是完整的文本
cut -d : -f2 /etc/passwd 显示passwd中的第二列
cut -d : -f7 /etc/passwd 显示passwd中的第7列的文本
cut -d : -f7 /etc/passwd |grep xl 显示passwd中的第7列,包含xl 的文本
grep xl /etc/passwd | cut -d : f7 搜索xl 显示第七列的内容
cut -c1-3 /etc/passwd 显示passwd 第一列的第一到第三个字符
cut -d : -f7 /etc/passwd | uniq 去掉文件中相邻的重复行
cut -d : -f7 /etc/passwd | uniq | wc -l 去掉文件中相邻的重复行后,统计字数
sort命令:
sort -t : -n /etc/passwd 使用sort进行排序
sort -t : +2 -n /etc/passwd 使用参数+2后,无法显示,有问题,做不出来,0为第一列,2为第三列
sort -t : -n /etc/passwd > /tmp/a 将passwd文件内容排序后放入到a文件里 cat /tmp/a
wc命令:
wc /etc/passwd
wc -c /etc/passwd 多少字符
wc -l /etc/passwd 多少行
wc -w /etc/passwd 多少单词
du命令: 查看文件大小
du
du | sort
du | sort -n 按照文件大小排序
du | sort -n -r 按照文件大小排序-反序
du | sort -n -r | head -n 3 按照文件大小排序-反序, 只显示前三行
du | sort -n -r | head -n 3 | cut -f2 按照文件大小排序-反序, 只显示前三行的第二列
使用正则表达式的命令
grep 显示文件中匹配关键字的行,用来从一个文件中找出匹配指定关键字的那一行,并送到标准输出。结合管道,我们通常用它来过滤搜索结果
locate -r "正则表达式" , 这个不会用
less 在/或?查找时使用\
vim 在查找或替换时
sed
awk
bash处理*时,不认为它是一个字符,所以要用单引号,*叫通配符
echo * 显示文件名,*代表文件名
. 代表任意一个字符
*代表任意多个前面的字符,如a*, 任意多个a(0个,1个。。。n个)
.*任意多个任意字符
\脱意符,如\. \* 匹配单独的.或*字符
^代表以。。。开头,如:^hi
$代表以。。。结尾,如:xl$
\以s开头,以k结尾
\
a\{18\} 重复a18次
^[abc] 以a或b或c开头的任意一个字符开头行显示出来
^[^a-t] 不是以a-t开头的字符
a?表示一个或-个单独的a
a+表示一个或多个a,如a,aa,aaa....
vi /usr/share/dict/words
超过40个字母的单词, grep '.\{40,\}' !$
40-50个字母的单词, grep '.\{40,50\}' !$
正好40个字母的单词, grep '.\{40\}' !$
!$代表上一次执行的命令
i18n 国际化组织
grep '^i.\{18\}n$' /usr/share/dict/words
/etc/squid/squid.conf 没有这个目录啊????
grep -v '^#' /etc/squid/squid.conf
grep -v '^#' /etc/squid/squid.conf | grep -v '^$'
grep -v '^#' /etc/squid/squid.conf | grep -v '^$' | wc -l
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29056818/viewspace-768518/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29056818/viewspace-768518/