linux - Unix 帮助 -- 从文件中提取数字

标签 linux bash unix

我是 UNIX 的新手,如果有人能帮助我,那就太好了。

我有一个名为 IMSI.txt 的文本文件,其格式如下:

A imsins -imsi 1241241
A imsins -imsi 5345

等等。文件遵循这种模式。

我需要从这个文件中提取数字并将它们放入另一个文件中。 新文件将具有以下输出:

1241241
5345
...

这就是我得到的结果,但我无法测试它是否有效

#!/bin/sh
grep [:digit:] IMSI.txt >> IMSINEW.txt
or grep '[0-9]'* IMSI.txt >> IMSINEW.txt

有什么想法吗?

感谢帮助

最佳答案

有很多种方法:

$ awk '{print $NF}' a
1241241
5345
awk 中的

NF 存储的是字段数。因此,$NF 表示行的最后一个字段,这就是您想要的。

$ grep -o '[0-9]*$' a
1241241
5345

在这种情况下,-o 仅打印 grep 的匹配部分。 [0-9]*$ 表示一组数字后跟行尾,因此它根据数字匹配行的最后一部分。

或者更好(感谢 konsolebox):

$ grep -o '[0-9]\+$' a
1241241
5345

也可以反转文件,用cut获取第一个字段然后反转回来:

$ rev file | cut -d' ' -f1 | rev
1241241
5345

关于linux - Unix 帮助 -- 从文件中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24862889/

相关文章:

linux - 混合hadoop集群

c++ - 为 C++ 程序创建一个健壮的 Makefile

linux - 如何配置对 EC2 实例的多个 ssh 访问

mysql - 创建包含目录中文件名称的 CSV 文件

linux - 在两个地方查找文件的位置 bash linux

mysql - 授予路径权限

java - 将 jar 部署到 unix 服务器

linux - 在哪里可以获得 "setfacl"Linux/Unix 命令的源代码

java - 在 Unix 上从 PKI 源 anchor 更新 Java 信任证书存储

linux - 更改文本文件的格式