0

我对使用 linux 和命令行很陌生,但我正在学习它来工作。我可以做大部分基础知识,但是我被困在了一些事情上。

我目前有一个如下所示的 .txt 文件:

AB 1 1 1 1 0 0 0 0 1 0 1 0

高炉 1 0 0 0 1 1 0 1 1 1 0 1

FG 0 0 0 0 0 0 0 0 0 0 1 0

IE。每行的开头有两个字母 - 写在同一行的每个数字“0”对应第一个字母,写在同一行的每个数字“1”对应第二个字母。它是空格分隔的。

我想做的是用该行上的相应字母替换每个 0 和 1。

所以上面的段落会变成:

ABBBBBAAAABABA

BFFBBBFFBFFFBF

FGFFFFFFFFFFGF

有谁知道我如何使用 awk 或 sed (或更好的方法)来做到这一点?

谢谢!

4

1 回答 1

3

使用gsub

$ awk '{gsub(0, $1); gsub(1, $2)} 1' your_file
A B B B B B A A A A B A B A
B F F B B B F F B F F F B F
F G F F F F F F F F F F G F
  • gsub(0, $1)将每个替换0$1. 并且$1是第一个领域。
  • gsub(1, $2)将每个替换1$2. 并且$2是第二个领域。
  • 这些1print $0_
于 2013-10-21T15:57:19.633 回答