我想用来自file2 (n=0..m)的第n行的内容在file1中插入每个(n*5)-th行。示例: file1
1: blabla1
2: blabla2
3: ddddd
4: sddddd
5: ffffff
6: hhhhh
...file2
1: name1
2: name2
3: name3
...结果
1: name1
2: blabla1
3: blabla2
4: ddddd
5: sddddd
6: ffffff
7: name2
8: hhhhh
...有没有什么"sed“或"awk”这样做的方法?
发布于 2013-06-22 04:20:04
bash解决方案。我在file1中添加了几行代码以实现效果
exec 4<file1
while IFS= read -r line; do
echo "$line"
for i in {1..5}; do
IFS= read -r line <&4 || break
echo "$line"
done
done < file2 | cat -n
exec 4<&- 1 name1
2 blabla1
3 blabla2
4 ddddd
5 sddddd
6 ffffff
7 name2
8 hhhhh
9 gggg
10 iiii
11 jjjj
12 kkkk
13 name3
14 llll这将产生相同的输出:
awk 'NR%5 == 1 {getline f2 < "file2"; print f2} 1' file1 | cat -n显然,通过管道连接到cat -n并不是解决方案的一部分,只是为了说明。
https://stackoverflow.com/questions/17241139
复制相似问题