bin*_*ger 6 pipe shell-script text-processing
我有一个包含要从另一个文件读取的行列表的文件。我想将这些行输出到一个实用程序 ( grep
),让我可以读取整行并从中提取信息。带有行的文件如下所示:
cat input.txt
2088
2089
2095
2096
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我坚持这一点。我知道sed
可以将特定的行号作为参数,但我无法弄清楚如何将其放入一个变量中以提供给它。
awk 'NR==FNR{linesToPrint[$0];next}
FNR in linesToPrint' line-numbers.txt file.txt
Run Code Online (Sandbox Code Playgroud)
如果我正确理解你的问题,这样的事情应该有效:
for i in $(cat numbers.txt); do cat lines.txt|tail -n +$i|head -n 1; done
Run Code Online (Sandbox Code Playgroud)
对于文件“numbers.txt”中的每个数字,它提取另一个文件的相应行并打印它。
sed
和是一样的,xargs
看起来像这样:
xargs -i sed "{}q;d" lines.txt <numbers.txt
Run Code Online (Sandbox Code Playgroud)