Объединение нескольких строк в одну строку - PullRequest
9 голосов
/ 18 марта 2010

У меня есть этот вариант использования XML-файла с вводом, как

Input:
<abc a="1">
   <val>0.25</val>
</abc> 
<abc a="2">
    <val>0.25</val>
</abc> 
<abc a="3">
   <val>0.35</val>
</abc> 
 ...

Output:
<abc a="1"><val>0.25</val></abc> 
<abc a="2"><val>0.25</val></abc>
<abc a="3"><val>0.35</val></abc>

У меня есть около 200K строк в файле в формате ввода, как я могу быстро преобразовать это в формат вывода.

Ответы [ 11 ]

0 голосов
/ 18 марта 2010

неэлегичный perl one-liner, который должен добиться цели, хотя и не особенно быстро.

cat file | perl -e '
    $x=0;
    while(<>){
        s/^\s*(\S*(?:\s+\S+)*)\s*$/$1/g;
        print;
        $x++;
    if($x==3){
        print"\n";
        $x=0;
    }
}' > output
...