[标签]: Linux三剑客之awk awk命令用法 从一行中取出你想要的列
问题详情的描述或方案目标的预期:
描述:awk是每一个运维必须掌握的强大命令,sed批量更新,grep快速搜索内容,awk切割取列。awk + grep + 正则可以让你精确得到文本中你想要的任意内容。
【解决方案】
整体思路:
用得多了就不需要刻意去记,用得少了记住了也会忘,重点在于日常工作要喜欢上并坚持用更好的方法
1. awk '{print$(NF-1)}' 只列出倒数第二列 ; awk '{print$NF}' 取出最后一列
2. awk '{print $0}' 打印整行内容
3. awk '{print FNR}' FNR表示当前处理的文件行行号
4. awk '{print FNR" "$0}' readme.txt ; FNR表示当前处理的文件行行号,$0表示当前处理的文件行内容
5. awk '{print length($0)" "$0}' 80access.log ;length($0)行内容的长度
6. awk '{print length($0)" "$0}' 80access.log | sort -nr -k1 ; 列出文本每一行长度,及内容,并按每行长度从长到短排序
7. awk '{for (i=2;i<=NF;i++)printf("%s ", $i);print ""}' ;列出第2列到最后一列
8. awk '{for(i=NF-5;i<=NF;++i) printf $i "\t";printf "\n"}' ./abc.txt ;列出倒数第6列到最后一列--列出最后6列
总结:迷茫的时候可用去做点好事,虽然你的迷茫很可能不是做坏事造成的。