cut 切割按列切割
-d 指定分隔符 -f 指定列
三剑客
grep过滤查找内容。
sed取行,增删改查
awk取列
语法
awk 参数 模式动作 文件
参数
-F指定分隔符
列表示:
$1 第一列 以此类推
$0 整行
$NF 最后一列
$NF-1 倒数第二列 以此类推
NR 行号
实践:
搭建环境 sed -n '1,5p' /etc/passwd >test.txt
问题1:取test.txt文件的第2行到第3行的内容。
sed -n '2,3p' test.txt
awk 'NR>1&&NR<4' test.txt
awk 'NR==2,NR==3' test.txt
问题2:过滤出含有root字符串的行※。
grep "root" test.txt
awk '/root/' test.txt
问题3:删除含有root字符串的行※。
sed '/root/d' test.txt
问题4:取文件的第一列、第三列和最后一列内容,并打印行号※。
awk -F":" '{print NR,$1,$3,$NF}' test.txt
问题5:取出Linux中执行ifconfig eth0后对应的IP地址(只能输出IP地址)。
ifconfig eth0|sed -nr 's#^.*net (.*) net.*$#\1#gp'
问题6:过滤文件中第一列内容匹配root的字符串,把符合的行的最后一列输出。
awk -F":" '$1~/root/{print $NF}' test.txt
sed -nr 's#^root.*:(.*)#\1#gp' test.txt
网友评论