我的txt文件的值为
f:0
c:Test C
s:test S
ctype:0
a:test A
t:10
r:test r
f:0
c:Test C1
s:test S1
ctype:1
a:test A1
t:10
r:test r
f:20
c:Test C
s:test S
ctype:2
a:test A1
t:0
r:test r
我已经尝试了以下代码但它没有提供正确的输出,因为所有单个换行值都是键值对和循环双新行:
awk '
BEGIN {
FS="\n"
RS=""
}
{
print $1 "\n " $2 "\n" $3
}
可以使用除awk之外的任何东西。
修改
OUTPUT就像:
if(ctype==0){
execute c;
}else if(ctype==1){ execute a}
我想循环数据并执行操作。
答案 0 :(得分:0)
我不完全确定我理解你的问题,但这与你的想法非常接近:
{
if ( /^a:/ ) a = substr($0, 3)
if ( /^c:/ ) c = substr($0, 3)
if ( /^ctype:/ ) ctype = substr($0, 7)
if ( /^$/ ) {
if ( ctype == "0" ) {
print "a: [", a, "]"
} else {
print "c: [", c, "]"
}
}
}
END {
if ( ctype == "0" ) {
print "a: [", a, "]"
} else {
print "c: [", c, "]"
}
}
这将读取每个测试块,搜索a,c和ctype的值,然后根据ctype的值打印a或c的值。这就是你的问题的编辑部分似乎表明你想要完成的事情;如果没有,希望它至少会指出你正确的方向。