shell脚本创建变量并在文件中查找变量

时间:2018-02-08 08:24:11

标签: linux shell awk getline

我的数据如下:

M-089]action=;Params=0000000;
M-091]act=;Params=3333333;
M-091]2001
M-090]action=;Params=3333333;
M-090]2001
M-089]4241

找到“action =”字符串并使用方法编号相同的编号。例089或090

M-089]action=;Params=0000000;M-089]4241
M-090]action=;Params=3333333;M-090]2001


nawk '/action=/' | sed 's/]//'| awk '{val=$1;getline $1;print val,$1}' infile

1 个答案:

答案 0 :(得分:0)

答案:

假设您只想连接具有相同方法编号的行 这是一个解决方案:输出与原始文件的顺序不同

sort -r infile | awk -F "]" '{printf NR%2?$0:$0"\n"}' | awk /action/

1)sort -r infile - 在 ascii表中获取相关的行(M-090]action comes be for M-090] Number

2)用"]"

分割线

3)数据被排序,很容易检查行是否是打印$0否则打印$ 0和新行($0"\n"

4)使用字符串awk /action/

过滤行的结果