gpt4 book ai didi

linux - 文本文件中特定行的转换

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:14 24 4
gpt4 key购买 nike

我正在 Linux 上工作,我有一个包含以下几行的文本文件:

1 Q0 /home/nikol123/Downloads/metadata/12/119317.xml 1 -6.23956 indri  
1 Q0 /home/nikol123/Downloads/metadata/20/194709.xml 2 -6.47239 indri
1 Q0 /home/nikol123/Downloads/metadata/13/120365.xml 3 -6.73307 indri
2 Q0 /home/nikol123/Downloads/metadata/25/241886.xml 2 -6.53499 indri
2 Q0 /home/nikol123/Downloads/metadata/18/175920.xml 3 -6.65065 indri
........

我想将其转换为:

1 Q0 119317 1 -6.23956 indri  
1 Q0 194709 2 -6.47239 indri
1 Q0 120365 3 -6.73307 indri
2 Q0 241886 2 -6.53499 indri
2 Q0 175920 3 -6.65065 indri
........

我尝试了这样的 awk 命令:

awk -F'[/ / / / / / . ]' '{print $1 " " $2 " " $9 " " $11 " " $12$13 " " $15}

但我得到第一行的结果,例如:

1 Q0 119317 1 -623956

所以我想知道-623956中的小数点在哪里?它应该是-6.23956indri 这个词在哪里?您能为我建议一个不同的 awk 命令语法吗?

最佳答案

sed

sed -e 's|^\([0-9]\sQ0\).*/home.*/\(.*\).xml\s\(.*\)$|\1 \2 \3|' /path/to/file

awk

awk '{gsub(/\/home.*\/|.xml/, "")}; 1' /path/to/file

关于linux - 文本文件中特定行的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26638114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com