我是 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/