Shell 多个文本间隔追加的方法

2020-09-09 20:16:57 +08:00
 devour

现在需要把 2 个文件间隔追加到一个文件中.

A 文件
123
456
789
B 文件
abc
def
ghi

需要追加成的样式

C 文件
123
abc
456
def
789
ghi

请教一下大家有什么好的办法吗?

2517 次点击
所在节点   Bash
8 条回复
love
2020-09-09 20:28:19 +08:00
这种复杂的就别强行 shell 了,不管是写个外部 py 小脚本还是就写内联 py 在 shell 脚本里都比用 shell 硬撸合适
rrfeng
2020-09-09 20:33:02 +08:00
文件不大的话可以 awk,用 NR 和 FNR
很大的话建议 python 等有文件 API 的,可以按行处理。其实 shell 也可以但是没必要……
devour
2020-09-09 21:27:03 +08:00
```
#! /bin/bash
for j in `cat a`
do
echo "$j" >> c
for k in `cat b`
do
echo "$k" >> c
sed -i '1d' b
break
done
done
```

不知道这样是否算是可以了.
toaruScar
2020-09-09 21:28:11 +08:00
devour
2020-09-09 22:00:20 +08:00
@toaruScar 谢谢.
pheyx
2020-09-09 22:18:56 +08:00
paste -d '\n' filea fileb
anjing01
2020-09-10 08:31:51 +08:00
paste a b >c
然后替换下空格为换行符( sed 或 tr )
anjing01
2020-09-10 08:35:24 +08:00
@anjing01 #7
sed -i 's/\t/\n/g' c

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/705594

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX