将 awk 输出字段合并为相应的整数

Combine awk output field to corresponding integer

提问人:Vijesh 提问时间:11/15/2023 更新时间:11/16/2023 访问量:48

问:

我正在尝试从如下所示的文件行中提取版本号:

grep abc | awk '{print $3}' somefile并获得多行输出,如下所示:

7.2.5.200
7.3.4.100

我希望将此输出组合成一个整数供以后使用,如下所示:

预期输出:

725200
734100

我尝试使用函数,但看起来没有连接函数。
任何解决方法将不胜感激。提前致谢!
splitawk

bash shell awk

评论

3赞 Ed Morton 11/15/2023
这真的有用吗?我的意思是,并且两者都会映射到这样,那么你就丢失了大概的关键信息。7.2.1.237.2.12.372123
0赞 Vijesh 11/16/2023
好渔获。让我检查一下我的用例的一些替代方案。谢谢!
1赞 keithpjolley 11/16/2023
如果您尝试排序以获取最新版本,则可以使用 sort 的 arg。-V, --version-sort
1赞 Ed Morton 11/16/2023
如果您这样做是为了尝试按版本号对任何内容进行排序或比较或以其他方式组织,那么有比首先将所有数字连接成一个整数更好的方法。

答:

2赞 Paolo 11/15/2023 #1

有很多方法可以做到这一点。一种方法,使用:awk

grep abc | awk '{ gsub(/\./, "", $3); print $3}' somefile
725200
734100

但是,在使用以下功能时,您几乎不需要使用:grepawk

awk '/abc/ { gsub(/\./, "", $3); print $3}' somefile
725200
734100