返回

string-使用bash创建包含数据中现有列的子字符串的新列

发布时间:2022-05-18 20:34:04 236
# 数据

我有一个大的 tsv.gz 文件(40GB),我想从现有变量中提取一个字符串col3,将其存储在一个新变量中New_var(放在开头)并将所有内容保存在新文件中。数据“old_file.tsv.gz”的示例

col1  col2  col3  col4
1  positive  12:1234A  100
2  negative  10:9638B  110
3  positive  5:0987A  100
4  positive  8:5678A  170

所需数据“new_file.tsv.gz”

New_var  col1  col2  col3  col4
12  1  positive  12:1234A  100
10  2  negative  10:9638B  110
5  3  positive  5:0987A  100
8  4  positive  8:5678A  170

我是bash的新手,所以我尝试了很多东西,但我被卡住了,我尝试过

zcat old_file.tsv.gz | awk '{print New_var=$3,$0 }' | awk '$1 ~ /^[0-9]:/{print $0 | (gzip -c > new_file.tsv.gz) }'

我想我有很多问题。{print New_var=$3,$0 }一定要复制col3但没有重命名它。然后当我添加代码的最后一部分awk '$1 ~ /^[0-9]:/{print $0 | (gzip -c > new_file.tsv.gz) }'...什么也没出现(我试着看我是否忘记了括号,但找不到问题)。我也不确定这种方式是否是最好的方式。知道怎么做吗?

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像