1

输入文件如下所示:

Header :  

            Data  
  Header2 :

data for header2

Header3 : data 3something

我做了什么:

sed "s/^ *//;s/ *$//;s/ \{1,\}/ /g" infile | tr -s "\n"  > outfile

现在是这样的:

Header :  
Data  
Header2 :  
data for header2  
Header3 : data 3something

我一直在寻找的是:

Header :  
Data  
Header2 :  
data for header2  
Header3 :  
data 3something  

那么,我在这里缺少什么?

4

3 回答 3

0

通过稍微修改你的一个班轮,我认为你可以让它工作:

sed "s/^ *//;s/ *$//;s/ \{1,\}/ /g;s/: */:\n/" infile | tr -s "\n"  > outfile
于 2012-04-24T22:58:05.383 回答
0

这可能对您有用:

sed '/^$/d;s/^\s*//;/:\s*\(\S\+\)/s//:\n\1/' file
Header :  
Data  
Header2 :
data for header2
Header3 :
data 3something
于 2012-04-24T23:34:13.723 回答
0
awk '$1 = $1 { if(NR!=8) print } END { print $1, $2 "\n" $3, $4 }' file 
Header :
Data
Header2 :
data for header2
Header3 :
data 3something
于 2012-04-25T15:48:40.453 回答