在文本文件的行上创建循环

在文本文件的行上创建循环

i 是一个整数(假设为 4)。我有三个文本文件(a、b、c),每个文件包含一行字符串,文件总行数等于 i(4)。例如,“a”文件包含:

trm320
abc000
dfg1002
der5205

我需要使用类似循环创建输出(在屏幕上或文本文件中);

a(1) b(1) c(1) (a,b,c 文件的第一行)


a(4) b(4) c(4) (a、b、c 文件的最后一行)

我需要创建什么样的循环?

答案1

paste完全符合您的要求。

DESCRIPTION
       Write  lines  consisting  of  the sequentially corresponding lines from
       each FILE, separated by TABs, to standard output.   With  no  FILE,  or
       when FILE is -, read standard input.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -d, --delimiters=LIST
              reuse characters from LIST instead of TABs

在你的情况下

paste -d " " a b c

就可以了。如果您需要文件中的输出,请重定向>output输出。


要访问n-th文件的行,请使用sed。为方便起见,将其包装在 Bash 函数中(pl应该是打印行)

function pl {
  sed -n "$1p" $2
}

例如,调用pl 5 a将打印文件的第五行a。将其存储在变量中

fifth=$(pl 5 a)

或者将两项任务结合起来

paste a b c | pl 5 -

打印连接文件的第五行。


要将文件放入数组,请使用mapfile, from这个答案

mapfile -t myArray < output.txt

相关内容