如何从存储在变量中的Shell脚本输出中获取第2行第4列的数据并进行打印?

huangapple go评论68阅读模式
英文:

How to get column 4 row 2 data printed from shell script output stored in a variable?

问题

我将shell脚本的输出存储在变量ABCD中,然后使用echo来打印输出,但我只想要第2行的第4列数据。

脚本输出如下:

    name city country    ID   phone   
    A     B      C     12  1233

使用|cut -f4,我能够获取第4列的所有数据,但我只想要打印12

英文:

I'm storing shell script output in variable ABCD then using echo to print output but I just want column 4 row 2 data.

scrip output is like below

name city country    ID   phone   
A     B      C     12  1233

using |cut -f4` I'm able to get column 4 all data but

I just want 12 to get printed

答案1

得分: 2

你可以尝试:

echo "name city country    ID   phone   
A     B      C     12  1233" | awk 'NR == 2 {print $4}'
英文:

You might want to try:

echo "name city country    ID   phone   
A     B      C     12  1233" | awk 'NR == 2 {print $4}'

答案2

得分: 1

这个命令可能有效:

tail -n1 file|awk '{print $4}';

或者更高效的方式,由@LéaGris提供:

awk 'END{print $4}' file
英文:

This command could work :

tail -n1 file|awk '{print $4}'

Or more efficiently as provided by @LéaGris

awk 'END{print $4}' file

答案3

得分: 1

如果您严格需要最后一行的数据,可以执行:

*your_script.sh* | cut -f4 | tail -n 1

tail 命令可以获取前面输出的最后几行。

  • -n 1 标志表示只保留(最后)一行
  • 如果您想跳过(第一)行并保留其余行数据(不包括标题),可以使用 -n +1。由于只剩下一行数据,这是多余的。
英文:

If you strictly need last row's data you can do:

*your_script.sh* | cut -f4 | tail -n 1

tail gives you the last rows of the previous output

  • -n 1 flag means keep only (the last) one row
  • -n +1 can be used if you want to skip (the first) one row, leaving you with all the remaining row data without the header. Since you only have one remaining row, this is redundant

答案4

得分: 0

Sure, here is the translated content:

如果你只需要除了第一行之外的所有行,你可以使用awk:

awk '!/name city country/ {print $4}';

或者只需使用:

awk 'NR>1 {print $4}';
英文:

If you need all the lines exept the first, you can with awk:

awk '!/name city country/ {print $4}'

or just

awk 'NR>1 {print $4}'

答案5

得分: 0

Got it. Here's the translated part:

尝试以下操作并获得了确切的结果:
|cut -f4 | awk 'NR==2

英文:

Tried below and got exact result :
|cut -f4 | awk 'NR==2

huangapple
  • 本文由 发表于 2020年10月3日 03:28:24
  • 转载请务必保留本文链接:https://go.coder-hub.com/64177250.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定