我必须与一个巨大的XML文件,这是从Excel导出。
该文件如下所示:
<Row>
<Data>some data..</Data>
<Data>some data..</Data>
<Data>some data..</Data>
<Data>some data..</Data>
<Data>some data..</Data>
<Data>some data..</Data>
<Data>some data..</Data>
<Row>大约有2000个行元素。
因此,总是有一个带有7个数据子标签的行标签。现在我想将每个第一个数据标记重命名为' one ',第二个重命名为' second‘,依此类推。
执行此操作的正确sed语法是什么?
发布于 2011-08-22 18:55:54
考虑使用awk代替...
BEGIN {
NUM[1]="one"
NUM[2]="two"
NUM[3]="three"
NUM[4]="four"
NUM[5]="five"
NUM[6]="six"
NUM[7]="seven"
}
/<Row/{
print
for(i=1;i<8;i++) {
getline
sub(/Data/, NUM[i]);print
}
}
/<\/Row/{print}输出:
$ awk -f r.awk input
<Row>
<one>some data..</one>
<two>some data..</two>
<three>some data..</three>
<four>some data..</four>
<five>some data..</five>
<six>some data..</six>
<seven>some data..</seven>
</Row>https://stackoverflow.com/questions/7146030
复制相似问题