日期:2014-05-16  浏览次数:20621 次

ls 实例,还有部分不理解,求解答,一步一步来
ls -lart /opt/Roamware/logs/septel|grep "septel.pcap"|grep -v gz|tail -40|awk '$8>m  {print $8,"get /opt/Roamware/logs/septel/"$9}' m=$tag1|sort -rn|tail -1

第一步:ls -lart /opt/Roamware/logs/septel|grep "septel.pcap"把目录下文件名含有septel.pcap的文件过滤出来,-lart的作用是什么
第二步:grep -v gz 是什么意思
第三步:tail -40 这的懂得 取最后40条记录
第四步:awk '$8>m  {print $8,"get /opt/Roamware/logs/septel/"$9}' m=$tag1 对这一步的语法不是很明晰,怎么先用变量m($8>m )再声明变量(m=$tag1),还有好像awk中也没指明分隔符
第五步:sort -rn 按数值降序排列
第六步:tail -1 显示最后一行

------解决方案--------------------
引用
-lart的作用是什么

man ls

       -l     use a long listing format

       -a, --all
              do not ignore entries starting with .

       -r, --reverse
              reverse order while sorting

       -t     sort by modification time
------解决方案--------------------
引用
grep -v gz 是什么意思

不包含字符串 gz 的行
.gz一般是压缩文件
但这样写其实不太严谨,因为文件名也可能包含gz
------解决方案--------------------
LZ的问题都可以用man来解答。
------解决方案--------------------
引用
awk '$8>m  {print $8,"get /opt/Roamware/logs/septel/"$9}' m=$tag1 对这一步的语法不是很明晰,怎么先用变量m($8>m )再声明变量(m=$tag1),还有好像awk中也没指明分隔符

这是awk调用外部变量的一种写法,另外一种写法是这样:
awk -v m=$tag1 '$8>m {print $8,"get /opt/Roamware/logs/septel/"$9}'

空格是默认的列分隔符
------解决方案--------------------