我有一个以下类型的文件 lines.txt :
1
3
5
6
我还有以下类型的另一个文件 text.txt :
A
B
C
D
E
F
G
H
我想获得一个包含以下内容的输出文件:
A
C
E
F
是否有任何bash命令可以帮助我做到这一点?
答案 0 :(得分:1)
您可以将text.txt
的行数加cat -n
。然后,您可以使用join
根据数字对两个文件进行配对,-o2.2
表示显示第二个文件中的第二列。
cat -n text.txt | join -o2.2 lines.txt -
答案 1 :(得分:1)
<强>计划强>
示例强>
join -o 1.2 <( nl -n ln text.txt ) lines.txt
<强>输出强>
A
C
E
F
答案 2 :(得分:1)
您可以循环显示lines.txt
中的行号,然后使用sed
所需的行:
for line in `cat lines.txt`
do
sed -n "${line}p" text.txt
done