Bash脚本在每行中打印不同的字段

时间:2016-07-06 18:03:06

标签: bash shell awk sed

我的意见如下: -

测试=变量

测试ID = 2122

1你好,直到你活跃

2此代码功能3

我需要如下输出: -

可变

2122

,直到

2 个答案:

答案 0 :(得分:1)

如果目标是打印等号后出现的内容:

$ awk -F= '$2 {print $2}' file
variable
2122

-F=告诉awk使用=作为字段分隔符。因此,在第一行=之前的内容是第一个字段$1

$2 {print $2告诉awk如果第二个字段不为空,则打印第二个字段。

答案 1 :(得分:1)

awk '/=/ {gsub(/^.*=/,""); print; next} !/=/ {print $3}' file
variable
2122
till
code

说明:

awk '
/=/ {             # if equals sign in the record
  gsub(/^.*=/,"") # remove everything from the beginning to the =
  print           # print it 
  next}
{print $3}        # print the third field
' file

根据@karakfa和@ John1024的建议编辑。