';awk&x27;这个Python代码的版本?

';awk&x27;这个Python代码的版本?,python,awk,Python,Awk,这是我的Python代码: with open('a') as f: a, b = f a, b = a.strip(), b.strip() 这是我的AWK代码: awk '{printf $1":"}' a 我想修改我的AWK代码,这样它就可以像上面的Python代码那样做 如上所述,AWK代码非常混乱 我需要它从文件a中抓取第1行和第2行,并允许我 使用这些变量。就像在Python代码中一样 或者可能还有其他一些是Linux本机的东西 我应该调查的 如果我没有弄错的话,

这是我的Python代码:

with open('a') as f:
    a, b = f
    a, b = a.strip(), b.strip()
这是我的AWK代码:

awk '{printf $1":"}' a
我想修改我的AWK代码,这样它就可以像上面的Python代码那样做

如上所述,AWK代码非常混乱

我需要它从文件
a
中抓取第1行和第2行,并允许我 使用这些变量。就像在Python代码中一样

或者可能还有其他一些是Linux本机的东西

我应该调查的

如果我没有弄错的话,有:


但是最快的是AWK。

我希望您的Python代码具有良好的错误/异常处理能力,以防file
a
有两行以上的代码

我假设您的文件正好有两行,然后您可以在AWK中执行:

awk '{a[NR]=$0}END{ #here you could do whatever with a[1] (a) and a[2] (b)}' file
例如:

kent$  seq 2|awk '{a[NR]=$0}END{print "hello "a[1]; print "hi "a[2]}'
hello 1
hi 2
或者这个:

kent$  seq 2|awk '{a[NR]=$0}END{printf "%s:%s\n",a[1],a[2]}'           
1:2

我希望这有帮助。

在你的python代码中,
a,b=f
做什么?@Kent:如果文件中正好有两行,
a
b
得到这两行;如果数量较多或较少,则会引发异常。(从下面的描述来看,他似乎不关心长或短文件的例外情况,他只需要以同样的方式处理两行文件。)那么你的意思是你的文件
a
只有两行?是什么让你认为awk是“最快的”?为什么这很重要?读取一个磁盘块的I/O时间可能会大大超过任何语言的处理成本,这可能在1微秒左右。@abarnert请参阅相关内容