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