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 显示最后一行
------解决方案--------------------
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
------解决方案--------------------
不包含字符串 gz 的行
.gz一般是压缩文件
但这样写其实不太严谨,因为文件名也可能包含gz
------解决方案--------------------LZ的问题都可以用man来解答。
------解决方案--------------------
这是awk调用外部变量的一种写法,另外一种写法是这样:
awk -v m=$tag1 '$8>m {print $8,"get /opt/Roamware/logs/septel/"$9}'
空格是默认的列分隔符
------解决方案--------------------