Answers:
有一个应用程序!
$ cat file1
file1 line1
file1 line2
$ cat file2
file2 line1
file2 line2
现在,如果您将这些文件作为参数传递给paste
:
$ paste -d' ' file1 file2
file1 line1 file2 line1
file1 line2 file2 line2
如果通过“ file1第一行,然后是file2第一行,file1第二行,然后是file2第二行,等等”,则意味着您要在每行粘贴之间添加新行,只需调整-d
(定界符)选项即可。
$ paste -d'\n' file1 file2
file1 line1
file2 line1
file1 line2
file2 line2
快速bash解决方案
# Takes as many file arguments as needed
function InterleaveFiles {
local counter=0
local hasLine=true
while [ $hasLine == true ]; do
hasLine=false
for i in "$@"; do
line=$(awk 'NR == num_line {print; exit}' num_line=$((counter+1)) "$i")
if [ -n "$line" ]; then
echo "$line"
hasLine=true
fi
done
counter=$((counter+1))
done
}
InterleaveFiles file1 file2 file3 file4
paste -d '\n' file1 file2 > file3
其中file1
和file2
是输入文件,file3
将是创建的输出。
printf "%s", ((ch < ARGC - 1) ? $0 FS : $0 RS)