gpt4 book ai didi

linux - 使用 awk 修改文本

转载 作者:IT王子 更新时间:2023-10-29 01:02:15 24 4
gpt4 key购买 nike

我正在尝试使用 awk 修改文本文件。共有三列,我想删除第一列中的部分文本:

range=chr1      20802865        20802871        
range=chr1 23866528 23866534

chr1      20802865        20802871        
chr1 23866528 23866534

我该怎么做?

我试过 awk '{ substr("range=chr*", 7) }'awk '{sub(/[^[:space:]]*\\/, "")}1' 但它会删除文件的所有内容。

最佳答案

设置字段分隔符为=并打印第二个字段:

# With awk                                                                     
$ awk -F= '{print $2}' file
chr1 20802865 20802871
chr1 23866528 23866534

# Or with cut
$ cut -d= -f2 file
chr1 20802865 20802871
chr1 23866528 23866534

# How about grep
$ grep -Po '(?<==).*' file
chr1 20802865 20802871
chr1 23866528 23866534

# Temp file needed
$ cut -d= -f2 file > tmp; mv tmp file

awkcutgrep 如果您想将更改存储回 file 都需要临时文件,更好的解决方案是使用 sed:

 sed -i 's/range=//' file

这会将 range= 替换为空,-i 意味着更改已就地完成,因此无需像 sed< 那样处理临时文件内容 为您完成。

关于linux - 使用 awk 修改文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13727004/

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