Chinaunix
标题:
遇到一些问题
[打印本页]
作者:
aaaa_123
时间:
2019-11-09 20:54
标题:
遇到一些问题
本帖最后由 aaaa_123 于 2019-11-11 15:25 编辑
cat a.txt
[456464278640]
a
o
Version=122121212
$$2=007962CF91FB515
$$5=0FB515C006
$$7=00B36C0A03A005C
cat b.txt
$$1=000786A6F0
$$3=03B0676F0AD8E
$$6=0300
从这Version开始, 把b文件每行插入a文件中去 每发现有Version, 就这开始把b文件内容插入a文件中去
似乎由Version开始 都是从$$0起 插入时按 $$1 $$2 $$3 $$4 $$5 顺序排列出来
谢谢了
然后需准确得到下面
[456464278640]
a
o
Version=122121212
$$1=000786A6F0
$$2=007962CF91FB515
$$3=03B0676F0AD8E
$$5=0FB515C006
$$6=0300
$$7=00B36C0A03A005C
作者:
aaaa_123
时间:
2019-11-09 21:38
作者:
cfwyy
时间:
2019-11-10 13:21
本帖最后由 cfwyy 于 2019-11-10 16:44 编辑
test.awk
!/Version/
/Version/{
print $0
while(getline>0){
if($0 ~/\$\$/)
a[NR]=$0
else
break
}
system(">""tmp")
for(i in a)
print a[i] >>"tmp"
system("sort -m tmp b.txt>meger")
system("sort -t= -k1.3,1n meger")
delete a
if($0 !~/\$\$/)
print $0
}
复制代码
awk -f test.awk a.txt
复制代码
作者:
aaaa_123
时间:
2019-11-10 16:09
回复
3#
cfwyy
Thanks
非常帅 而且还是awk
作者:
aaaa_123
时间:
2019-11-10 16:30
本帖最后由 aaaa_123 于 2019-11-10 20:41 编辑
.....OK
作者:
Looiml
时间:
2020-03-01 23:50
本帖最后由 Looiml 于 2020-03-01 23:56 编辑
cat a
复制代码
[456464278640]
a
o
Version=122121212
$2=007962CF91FB515
$5=0FB515C006
$7=00B36C0A03A005C
cat b
复制代码
$1=000786A6F0
$3=03B0676F0AD8E
$6=0300
awk '1;/^Version/,0{if(getline<"b">0)print;else close("b")}' a
复制代码
[456464278640]
a
o
Version=122121212
$1=000786A6F0
$2=007962CF91FB515
$3=03B0676F0AD8E
$5=0FB515C006
$6=0300
$7=00B36C0A03A005C
作者:
wh7211
时间:
2020-03-20 15:36
回复
1#
aaaa_123
cat 1
[456464278640]
a
o
Version=122121212
$2=007962CF91FB515
$5=0FB515C006
$7=00B36C0A03A005C
cat 2
$1=000786A6F0
$3=03B0676F0AD8E
$6=0300
awk -F"=" 'FILENAME==ARGV[1]{if(NF>0){a[$1]=$0};next}!b{print;if($0~/Version/){b=1;next}}b{a[$1]=$0}END{for(i in a){print a[i]}}' 2 1
[456464278640]
a
o
Version=122121212
$1=000786A6F0
$2=007962CF91FB515
$3=03B0676F0AD8E
$5=0FB515C006
$6=0300
$7=00B36C0A03A005C
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2