有没有一种方法可以将整数的一列视为数组以提取某些数字?

时间:2018-09-27 05:51:09

标签: bash shell unix awk

我试图将一系列整数视为一个数组,以提取感兴趣的“列”。

提取整数列后的数据如下:

01010101010
10101010101
00100111100
10111100000
01011000100

如果我只对第1、4和11个整数感兴趣,我希望输出看起来像这样:

010
101
000
110
010

这个问题很难用言语来描述,因此,我对缺乏清晰性感到抱歉。我尝试了许多建议,但是awk的substr()等许多内容都无法跳过位置(例如此处的第1,第4和第11位置)。

3 个答案:

答案 0 :(得分:7)

您可以使用cut命令:

cut -c 1,4,11 file

-c仅选择字符。

或使用(gnu)awk:

awk '{print $1 $4 $11}' FS= file

FS是字段分隔符,为了捕获每个单个字符,将其设置为空。

答案 1 :(得分:4)

使用可以将空字符串用作字段分隔符的GNU awk,您可以执行以下操作:

awk -F '' '{print $1, $4, $11}' OFS='' infile

答案 2 :(得分:2)

您能否也请关注awk

awk '{print substr($0,1,1) substr($0,4,1) substr($0,11,1)}'  Input_file