awk用法:取列表最后一列

简介:

很多时候我们有需要取出文本中的最后一列,或者比如 ls -l 最后一列为文件名,这里可以使用多种方法取出最后一列;


举例说明:

[root@testserver tmp]# ls -l

总用量 1000

-rw-r--r-- 1 root  root  925223 6月  15 18:06 0615.txt

-rw-r--r-- 1 root  root      84 6月  15 15:07 dir.txt

-rw-r--r-- 1 root  root      86 6月  14 12:00 for.sh

-rw-r--r-- 1 root  root     715 6月  14 12:09 G.txt

-rw-r--r-- 1 root  root    1614 6月  14 12:07 M.txt

-rw-r--r-- 1 root  root   37763 6月  14 12:00 size.txt

-rw-r--r-- 1 root  root   35579 6月  14 11:51 test.txt


方法1:

直接使用awk $NF取最后一列,问题来了,注意取出来的第一行,包括ls -l 显示的第一行总用量 1000这个数值;

1
2
3
4
5
6
7
8
9
[root@testserver tmp] # ls -l|awk '{print $NF}'
1000
0615.txt
dir .txt
for .sh
G.txt
M.txt
size.txt
test .txt


方法2:

同样awk $NF,加一个条件NR>1,跳过第一行

1
2
3
4
5
6
7
8
[root@testserver tmp] # ls -l|awk 'NR>1 {print $NF}'
0615.txt
dir .txt
for .sh
G.txt
M.txt
size.txt
test .txt


方法3:

使用awk next函数,NR==1 跳过第一行

1
2
3
4
5
6
7
8
[root@testserver tmp] # ls -l|awk 'NR==1 {next} {print $NF}'
0615.txt
dir .txt
for .sh
G.txt
M.txt
size.txt
test .txt


方法4:

可以写一个for循环,并定向到一个文件中

可以使用for循环取文件列表  for i in `ls`;do echo $i>>dir.txt;done;

1
2
3
4
5
6
7
8
[root@testserver tmp] # cat dir.txt 
0615.txt
dir .txt
for .sh
G.txt
M.txt
size.txt
test .txt





本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1789910,如需转载请自行联系原作者

目录
相关文章
|
Kubernetes Cloud Native Linux
阿里云基于Cilium的高性能云原生网络
你知道吗,这个方案基于Cilium & eBPF来实现。在此之前,Google的GKE和Anthos也宣布基于Cilium+eBPF实现了新的容器网络数据面V2方案。但阿里云的方案会有所不同,阿里云采用Terway IPVLAN+Cilium的eBPF结合的方式。
12324 1
阿里云基于Cilium的高性能云原生网络
|
Ubuntu Linux
将linux系统制作成iso镜像
将linux系统制作成iso镜像
|
网络安全
|
开发者 Docker 容器
DockerFile的ADD和COPY的区别
DockerFile的ADD和COPY的区别
4802 0
|
Ubuntu 开发工具
Ubuntu更换阿里云软件源
Ubuntu更换阿里云软件源
141593 0
Debian 官方源换为国内的源的操作方法
apt-get update 报错,采用更换源的方式解决问题。
56186 0
|
Linux
阿里云官方yum源
阿里云官方yum源
72879 0
|
关系型数据库 PostgreSQL
PostgreSQL 计算字符串字符数函数(CHAR_LENGTH(str))和字符串长度函数(LENGTH(str))
PostgreSQL 计算字符串字符数函数(CHAR_LENGTH(str))和字符串长度函数(LENGTH(str))
2951 0
|
Unix Linux Perl
sed删除指定行
sed删除指定行
1391 1