Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 一对多合并文件 file1.txt file2.txt_Linux_Shell - Fatal编程技术网

Linux 一对多合并文件 file1.txt file2.txt

Linux 一对多合并文件 file1.txt file2.txt,linux,shell,Linux,Shell,我想创建一个线程文件,如下所示[使用shell脚本] file3.txt 或 awk变量NR是所有输入行的当前行号,FNR是当前文件的行号:NR==FNR仅适用于awk读取的第一个文件中的行。以下是glenn jackman答案的替代版本: awk -v pf=file1.txt 'BEGIN{getline p<pf;OFS=","} {print p,$0}' file2.txt > file3.txt awk-v pf=file1.txt'开始{getline pIt更像是合

我想创建一个线程文件,如下所示[使用shell脚本]

file3.txt 或


awk变量NR是所有输入行的当前行号,FNR是当前文件的行号:NR==FNR仅适用于awk读取的第一个文件中的行。

以下是glenn jackman答案的替代版本:

awk -v pf=file1.txt 'BEGIN{getline p<pf;OFS=","} {print p,$0}' file2.txt > file3.txt

awk-v pf=file1.txt'开始{getline pIt更像是合并而不是连接…file1.txt是否始终是一行,在file2.txt中的所有行前面都有一行?仅显示一个输入和输出案例并不能为问题提供足够的定义。是的,file1将始终是一行。我要添加的特定行,以及file2.txt中的所有行,如示例所示e以上感谢您的及时支持。
cat
是不必要的,请使用
prefix=$(
。这样使用
for
将在空格上拆分行,并在每个“单词”前输出前缀每一个都在单独的行中。您可以在末尾执行一次输出:
done>file3.txt
,而不需要执行
rm
05--Nov--2010--Friday 23:24:57,06--Nov--2010--Saturday  8:23:34

06--Nov--2010--Saturday  8:23:34,06--Nov--2010--Saturday  9:56:22
10,05--Nov--2010--Friday 23:24:57,06--Nov--2010--Saturday  8:23:34

10,06--Nov--2010--Saturday  8:23:34,06--Nov--2010--Saturday  9:56:22
#!/bin/bash
rm -f file3.txt
prefix=$(cat file1.txt)
for i in $(cat file2.txt)
do
    echo $prefix,$i >> file3.txt
done
awk '{print '`cat file1.txt`' "," $0}' file2.txt > file3.txt
line=`cat file1.txt`;
awk '{print '`echo $line`' "," $0}' file2.txt > file3.txt
awk 'NR==FNR {prefix=$0; next} {print prefix "," $0}' file1.txt file2.txt > file3.txt
awk -v pf=file1.txt 'BEGIN{getline p<pf;OFS=","} {print p,$0}' file2.txt > file3.txt