awk - 使用 awk 将字段分隔符 ',' 更改为空格

我有以下内容:

ID_REF,GSM2819484,GSM2819485,GSM2819486,GSM2819487,GSM2819488,GSM2819489,GSM2819490,GSM2819491,GSM2819492,GSM2819493,GSM2819494,GSM2819495,GSM2819496,GSM2819497,GSM2819498,GSM2819499,GSM2819500,GSM2819501,GSM2819502,GSM2819503,GSM2819504,GSM2819505,GSM2819506,GSM2819507,GSM2819508,GSM2819509,GSM2819510,GSM2819511,GSM2819512,GSM2819513,GSM2819514,GSM2819515,GSM2819516,GSM2819517,GSM2819518,GSM2819519,GSM2819520,GSM2819521,GSM2819522,GSM2819523,GSM2819524,GSM2819525,GSM2819526,GSM2819527,GSM2819528,GSM2819529,GSM2819530,GSM2819531,GSM2819532,GSM2819533,GSM2819534,GSM2819535,GSM2819536,GSM2819537,GSM2819538,GSM2819539,GSM2819540,GSM2819541,GSM2819542,GSM2819543,GSM2819544,GSM2819545,GSM2819546,GSM2819547,GSM2819548,GSM2819549,GSM2819550,GSM2819551,GSM2819552,GSM2819553,GSM2819554,GSM2819555,GSM2819556,GSM2819557,GSM2819558,GSM2819559,GSM2819560,GSM2819561,GSM2819562,GSM2819563,GSM2819564,GSM2819571,GSM2819572,GSM2819573,GSM2819574,GSM2819575,GSM2819576,GSM2819577,GSM2819578,GSM2819579,GSM2819580,GSM2819581,GSM2819582,GSM2819583,GSM2819584,GSM2819585,GSM2819586,GSM2819587,GSM2819588,GSM2819589,GSM2819590,GSM2819591,GSM2819592,GSM2819593,GSM2819594,GSM2819595,GSM2819596

为什么这段代码不起作用?

awk 'BEGIN { FS=",";OFS= " "}{print $0}' file

另外,我怎样才能跳过打印“ID_REF”?

期望的输出:

GSM2819484 GSM2819485 GSM2819486 GSM2819487 GSM2819488 GSM2819489 GSM2819490 GSM2819491 GSM2819492 GSM2819493 GSM2819494 GSM2819495 GSM2819496 GSM2819497 GSM2819498 GSM2819499 GSM2819500 GSM2819501 GSM2819502 GSM2819503 GSM2819504 GSM2819505 GSM2819506 GSM2819507 GSM2819508 GSM2819509 GSM2819510 GSM2819511 GSM2819512 GSM2819513 GSM2819514 GSM2819515 GSM2819516 GSM2819517 GSM2819518 GSM2819519 GSM2819520 GSM2819521 GSM2819522 GSM2819523 GSM2819524 GSM2819525 GSM2819526 GSM2819527 GSM2819528 GSM2819529 GSM2819530 GSM2819531 GSM2819532 GSM2819533 GSM2819534 GSM2819535 GSM2819536 GSM2819537 GSM2819538 GSM2819539 GSM2819540 GSM2819541 GSM2819542 GSM2819543 GSM2819544 GSM2819545 GSM2819546 GSM2819547 GSM2819548 GSM2819549 GSM2819550 GSM2819551 GSM2819552 GSM2819553 GSM2819554 GSM2819555 GSM2819556 GSM2819557 GSM2819558 GSM2819559 GSM2819560 GSM2819561 GSM2819562 GSM2819563 GSM2819564 GSM2819571 GSM2819572 GSM2819573 GSM2819574 GSM2819575 GSM2819576 GSM2819577 GSM2819578 GSM2819579 GSM2819580 GSM2819581 GSM2819582 GSM2819583 GSM2819584 GSM2819585 GSM2819586 GSM2819587 GSM2819588 GSM2819589 GSM2819590 GSM2819591 GSM2819592 GSM2819593 GSM2819594 GSM2819595 GSM2819596

最佳答案

您可以使用:

awk -F, '{sub(/^[^,]*,/, ""); $1=$1} 1' file

GSM2819484 GSM2819485 GSM2819486 GSM2819487 GSM2819488 GSM2819489 GSM2819490 GSM2819491 GSM2819492 GSM2819493 GSM2819494 GSM2819495 GSM2819496 GSM2819497 GSM2819498 GSM2819499 GSM2819500 GSM2819501 GSM2819502 GSM2819503 GSM2819504 GSM2819505 GSM2819506 GSM2819507 GSM2819508 GSM2819509 GSM2819510 GSM2819511 GSM2819512 GSM2819513 GSM2819514 GSM2819515 GSM2819516 GSM2819517 GSM2819518 GSM2819519 GSM2819520 GSM2819521 GSM2819522 GSM2819523 GSM2819524 GSM2819525 GSM2819526 GSM2819527 GSM2819528 GSM2819529 GSM2819530 GSM2819531 GSM2819532 GSM2819533 GSM2819534 GSM2819535 GSM2819536 GSM2819537 GSM2819538 GSM2819539 GSM2819540 GSM2819541 GSM2819542 GSM2819543 GSM2819544 GSM2819545 GSM2819546 GSM2819547 GSM2819548 GSM2819549 GSM2819550 GSM2819551 GSM2819552 GSM2819553 GSM2819554 GSM2819555 GSM2819556 GSM2819557 GSM2819558 GSM2819559 GSM2819560 GSM2819561 GSM2819562 GSM2819563 GSM2819564 GSM2819571 GSM2819572 GSM2819573 GSM2819574 GSM2819575 GSM2819576 GSM2819577 GSM2819578 GSM2819579 GSM2819580 GSM2819581 GSM2819582 GSM2819583 GSM2819584 GSM2819585 GSM2819586 GSM2819587 GSM2819588 GSM2819589 GSM2819590 GSM2819591 GSM2819592 GSM2819593 GSM2819594 GSM2819595 GSM2819596

这里:

  • sub(/^[^,]*,/, "") 删除第一个逗号和第一个逗号之前的第一个值
  • $1=$1 强制 awk 使用默认的 OFS 重建记录,这是一个空格。

当您使用 {print $0} 时,无论 OFS 值是多少,它都会打印未触及、未篡改的原始记录。您需要通过更改任何列来强制 awk 重建记录,就像我做的那样 $1=$1(虚拟分配)。

替代解决方案可以是:

awk -F, '{$1=""; print substr($0, 2)}' file

关于awk - 使用 awk 将字段分隔符 ',' 更改为空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74124865/

相关文章:

typescript - 如何为 Prisma 选择属性键入变量

python - 如何避免 NumPy 中的嵌套 for 循环?

javascript - 警告 IE11 用户他们的浏览器在 React 18 中不受支持

javascript - 在 Javascript 中没有双 for 循环的情况下用对象数组中的 0

python - 确定谁拥有超过 80% 的给定发货人

javascript - 左侧条件分配

c# - .NET 6 将参数检查替换为 ArgumentNullException.ThrowIf

delphi - TFileStream 比 TMemoryStream 慢

r - 选定列乘以给定向量

c# - ocelot api网关中的System.InvalidOperationExceptio