我有一堆文件,所有文件都Account number: 123456789在不同的位置.
我需要做的是能够解析文件,并找到帐号本身.因此,awk需要寻找Account number:并立即返回字符串.
例如,如果是:
Account number: 1234567
Run Code Online (Sandbox Code Playgroud)
awk 应该返回:
1234567
Run Code Online (Sandbox Code Playgroud)
一旦发现它第一次出现就可以停止寻找.
但是,我很难过.使用这种方法的正确方法是什么awk?
Gur*_*uru 39
单程:
awk -F: '$1=="Account number"{print $2;exit;}' file
Run Code Online (Sandbox Code Playgroud)
我假设您想要在文件中找到第一个出现的那一刻停止.如果要在文件的每一行中查找事件,只需删除exit.
小智 7
接受的答案在字符串前面输出一个空格,这迫使我使用另一种方法:
awk '/Account number/{print $3; exit}'
Run Code Online (Sandbox Code Playgroud)
这个解决方案忽略了:分隔符,但工作起来就像一个魅力,并且在我看来更容易记住。
小智 6
您可以使用if检查$1和$2平等的"账户"和"数量".如果他们这样做,那么打印$3:
> awk '{if ($1 == "Account" && $2 == "number:") {print $3; exit;}}' input.txt
Run Code Online (Sandbox Code Playgroud)