字符管理
一、grep
功能:配合正则表达式匹配文件中关键字所在的行
1、在当前目录下递归查找带有root关键字的文件
grep -r “root” ./
-r 递归
2、在passwd文件中查找带有root关键字所在的行并显示行号
grep -n “root” passwd
-n 显示行号
3、在passwd文件中统计带有root关键字所在行的总数
grep -c “root” passwd
-c 统计行号
4、在passwd文件中忽略大小写查找root关键字所在的行
grep -i “root” passwd
-i 忽略大小写
5、在passwd文件中匹配以root开头的行
grep “^root” passwd
6、在passwd文件中匹配以bash结尾的行
grep “bash$” passwd
7、在f1文件中匹配以te开头的单词
grep “\<te” f1
8、在f1文件中匹配以st结尾的单词
grep “st\>” f1
9、在f1文件中匹配test单词
grep “\<test\>” f1
10、在passwd文件中匹配以a-c关键字开头的行
grep “[a-c]” passwd
注:*代表通配符。可以匹配所有字符。
二、egrep
功能:同grep功能一致,是grep的增强版,可以同时匹配多个正则表达式
1、匹配前边的正则表达式0次或1次
egrep “^root?” f1
2、匹配前边的正则表达式1次或多次
egrep “^root+” f1
3、使用grep匹配多个正则表达式
在passwd文件中匹配以root开头的行和以bash结尾的行
grep -e “^root” -e “bash$” passwd
三、cut
功能:截取指定列
1、在passwd文件中截取第2列
cut -d “:” -f 2 passwd
-d ----》指定分隔符
-f ----》指定列
四、sed
功能:对原文件进行删除和替换,并可以抓取关键字所在的行
1、对原文件进行删除
注:有参数i是真正删除;没有参数i,显示删除后的结果,没有真正删除
1)删除某文件中第x行到第y行
sed -i ‘x,yd’ 文件名
例:删除passwd文件中第1行到第3行
sed -i ‘1,3d’ passwd
2)删除某文件中第x行
sed -i ‘xd’ 文件名
例:删除passwd文件中第10行
sed -i ‘10d’ passwd
3)删除某文件中的第x行及后边的所有行
sed -i ‘x,$d’ 文件名
例: 删除passwd文件中第10行及后边的所有行
sed -i ‘10,$d’ passwd
4)删除某文件中关键字所在的行
sed -i ‘/关键字/d’ 文件名
例:删除passwd文件中ftp关键字所在的行
sed -i ‘/ftp/d’ passwd
2、对原文件的内容进行替换
1)将某文件中的旧的内容替换成新的内容
sed -i ‘s/旧的内容/新的内容/g’ 文件名
例:将passwd文件中的adm替换成ADM
sed -i ‘s/adm/ADM/g’ passwd
3、多点编辑
1、将某文件中的第x行删除,并将旧的内容替换成新的内容
sed -i -e ‘xd’ -e ‘s/旧的内容/新的内容/g’ passwd
例: 将passwd文件中的第10行删除,并将ADM替换成adm
sed -i -e ‘10d’ -e ‘s/ADM/adm/g’ passwd
-e —》多点编辑,可以同时执行多个动作
4、抓取某文件中关键字所在的行
sed -n ‘/关键字/p’ 文件名
例:抓取passwd文件中ftp关键字所在的行
sed -n ‘/ftp/p’ passwd
五、awk
1、抓取某文件中关键字所在的行
awk ‘/关键字/’ 文件名
例:抓取passwd文件中root关键字所在的行
awk ‘/root/’ passwd
2、抓取df -h输出结果中sda1关键字所在的行并显示行号
df -h | awk ‘/sda1/ {print NR,$0}’
3、抓取df -h输出结果中的第2行
df -h | awk ‘NR==2’
4、抓取df -h输出结果中的第x列
df -h | awk ‘{print $x}’
5、抓取df -h输出结果中的第2列和第3列
df -h | awk ‘{print $2,$3}’
6、抓取df -h输出结果中第x列包含关键字所在的行
df -h | awk ‘$x ~/关键字/’
例:df -h | awk ‘$1 ~/sda1/’
7、抓取df -h输出结果中第1列不包含关键字sda1所在行的其他行
df -h | awk ‘$1 !~/sda1/’
8、抓取df -h输出结果中包含关键字sda2所在行的第2列
df -h | awk ‘/sda2/ {print $2}’
9、以:为分隔符抓取passwd文件中的第2列
awk -F “:” ‘{print $2}’ passwd
注:awk不指定分隔符的时候,默认以空格为分隔符抓取指定列。
六、sort
功能:对列进行排序,默认以升序排序
格式:sort -t “分隔符” -k 排序的列
-r 逆序排序
-n 对数值进行排序
例:对passwd文件中的第2列进行逆序排序
sort -t “:” -k 2 -r -n passwd
对passwd文件中的第1列进行升序排序
sort -t “:” -k 1 passwd -------》由于第一列是数值所以不需要指定n参数
七、wc
功能:统计
1、 统计某文件中总计多少行
wc -l 文件名
例:统计passwd文件中总计多少行
wc -l passwd
2、统计某文件中总计多少个单词
wc -w 文件名
例: 统计passwd文件中总计多少个单词
wc -w passwd
3、统计某文件中总计多少个字节
wc -c 文件名
例:统计passwd文件中总计多少个字节
wc -c passwd