无论如何,我可以在awk
中读取固定长度的文件中的字符串吗?
我有一个名为dictionary
的文件和另一个名为indexes
的文件,我希望从indexes
读取固定长度为4的字符串,并将其替换为{{1}的第一列1}}。
例如:
索引文件:
dictionary
字典文件:
0201000800030307
我希望结果如下:
hello hey
hi hoy
baby hoy
baba boy
是否可以使用0201 hey
0008 hoy
0003 hoy
0307 boy
执行此操作?或者如果不是,那么无论如何都要在awk
中进行吗?
编辑:bash
文件可以包含任何ascii charachter。
答案 0 :(得分:2)
将GNU awk用于多字符RS:
$ awk '
NR==FNR {
while ($0!="") {
a[++i] = substr($0,1,4)
$0 = substr($0,5)
}
next
}
{ print a[FNR], $2 }
' RS='^$' idx RS='\n' dict
0201 hey
0008 hoy
0003 hoy
0307 boy
答案 1 :(得分:1)
这应该有效
awk 'FNR==NR{while($0){a[++x]=substr($0,1,4);$0=substr($0,5)}next}$1=a[FNR]' file file2