我有这样的数据:
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
最佳答案
回答:
假设您只想连接具有相同方法编号的行 这是适合您的解决方案:输出与原始文件的顺序不同
sort -r infile | awk -F "]" '{printf NR%2?$0:$0"\n"}' | awk /action/
1) sort -r infile
- 将相关行放在彼此之上(M-090]action comes be for M-090]
Number
在 ascii 表)
2) 用"]"
分割线
3) 数据已排序,很容易检查行是否均匀打印 $0
否则打印 $0 和新行 ($0"\n"
)
4) 过滤结果中包含您的字符串的行 awk/action/
关于linux - shell脚本创建变量并在文件中查找变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48680788/