gpt4 book ai didi

linux - 如何通过 Unix 和 awk 命令有条件地将列中的值替换为同一行中特定列的值

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

我想通过 Unix 和 awk 命令有条件地将列中的值替换为一个文件中同一行中特定列的值。

例如,我有 myfile.txt(3 行,5 列,制表符分隔):

1 A . C .
2 C T . T
3 T C C .

有“.”在第 3 至 5 列中。我想替换那些“。”第 3 - 5 列中的值与同一行中第 2 列中的值。

你能告诉我任何方向吗?

最佳答案

这似乎可以满足您的要求:

% awk 'BEGIN {
IFS = OFS = "\t"
}
{
for (column = 3; column <= NF; ++column) {
if ($column == ".") {
$column = $2
}
}
print
}
' test.tsv
1 A A C A
2 C T C T
3 T C C T

您现在已经在 awk 上问了几个问题(并且没有接受任何答案!)。可能虚心建议a tutorial

关于linux - 如何通过 Unix 和 awk 命令有条件地将列中的值替换为同一行中特定列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6224869/

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