Linux命令练习第三关(1)

1.如何取得/etc/hosts文件的权限对应的数字内容,-rw-r–r–为644,要求使用命令取得644这样的数字。

解答:
思路:
1.通过stat输出包含目标的内容。
2.通过head,tail,sed,awk,grep定位到单行。(取行惯用命令)
3.通过cut,awk等设置分隔符取出需要段内容。(取列惯用命令)

[root@ianLinux ~]# stat /etc/hosts

Linux命令练习第三关(1)_第1张图片

这里写图片描述

awk多分隔符方法:

[root@ianLinux ~]# stat /etc/hosts|sed -n '4p'|awk -F "[0/]" '{print $2}'
# 或
[root@ianLinux ~]# stat /etc/hosts|awk -F "[0/]" 'NR==4 {print $2}' 

这里写图片描述

sed后向引用方法:

[root@ianLinux ~]# stat /etc/hosts|sed -nr '4s#^.*\(0(.*)/-.*$#\1#gp'

这里写图片描述

犯的错误:

这里写图片描述
^.*(0(.*)改为^.*\(0(.*)


这里写图片描述
把双引号改为单引号。

stat加参数的方法:

stat可以列出文件的详细信息。
Linux命令练习第三关(1)_第2张图片

man一下stat,看这些信息是否能通过参数取出。
-c –format=FORMAT
use the specified FORMAT instead of the default; out-put a newline after each use of FORMAT

Linux命令练习第三关(1)_第3张图片

[root@ianLinux ~]# stat -c %a /etc/hosts

这里写图片描述

你可能感兴趣的:(Linux命令练习)