如何提取每一行的一部分并创建一个列表

时间:2016-10-31 11:47:04

标签: bash

我正在从命令中获取多行输出:

"InstanceId": "i-0e827d54c1b87fa87",
"InstanceId": "i-0c084d7a6ac86dcc2",
"InstanceId": "i-05d669152a3a67ee2",

我需要创建一个仅包含值的列表,例如i-0e827d54c1b87fa87以便我稍后可以在脚本中迭代它。

如何从i-0e827d54c1b87fa87中为上面每一行提取"InstanceId": "i-0e827d54c1b87fa87",并创建一个列表?

1 个答案:

答案 0 :(得分:1)

有些方法可以做到这一点 -

#cut is built to do exactly this
cut -c 16-34 file

#Take the substring using awk
awk '{print substr($0, 16, 19)}' file #Take the substring using awk

#Define a double quote as delimiter and print the 4th column
awk -F\" '{print $4}' file 

file是您在问题中显示的输出。如果您不想将该输出放在文件中,可以将其输出到这些命令。