非常实用的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,按顺序来。
是不是差不多。