实用脚本awk

非常实用的awk

有时候需要去服务器下载几个日志

日志太多,翻滚起来很麻烦,操作又慢又复杂。

可以使用这个下载最新的两个文件

ls -lt | head -3 | awk -F ' ' '{if(NR>1) {print $9}}'

“l”是输出9段信息的,目录属性 所有者,字节,修改时间,文件名
“t”是按照时间降序排列

awk -F ‘<分隔符>’ ’ {pattern + action} ‘

非常强,其中{pattern+action}支持逻辑控制语句 和C-like 一样的。
还可以加上begin和end,可以在begin中定义并初始化变量

‘BEGIN {读之前执行一次} {pattern+action} END {最后执行一次}’

$0表示 整个一行,$1 表示第一个域 $9 表示第九个。

上面的命令用到了内置变量
NR ,表示已经读取的结果行数

其实可以直接获得三个文件名

ls -t | head -3

顺便提一下Windows的bat

读取文件:
for /f “delims=分隔符,tokens=2,3” %%i in (File.txt) do
echo <表达式>

批量重命名:
for /f “delims=分隔符,tokens=2,3” %%i in (dir B ) do
ren <表达式> <表达式>

%%i表示 第二个域,那么有3,则还可以用%%j,按顺序来。

是不是差不多。

原文地址:https://www.cnblogs.com/slankka/p/9158517.html