1

我有一个文件,其中有一些记录,每条记录都分成多行。

文件.txt

    <start some words
somewords
some words
some words"/>
    <start some words
some words
some words
some words"/>

现在我想将记录逐个读取到我的while循环中,为此我尝试了类似下面的内容

while IFS="/>" read line

code

done < file.txt

但它只读取记录的一部分,即

<start some words

但我想将记录读入行变量,即

     <start some words
somewords
some words
some words"/>

我也尝试过类似下面的方法,但没有奏效

sed -n '/<start/\/>/'p | while read line

code

done < file.txt

谁能帮助我如何明智地阅读数据记录?

4

1 回答 1

2

我不知道你想对那些“记录”做什么,看来你while read...无论如何都想使用。所以问题是如何将多行记录转换为单行..我的理解是正确的,检查这个awk:

 awk '/<start/,/\/>/{printf "%s ",$0}/\/>/{print ""}' file

它将输出:

<start some words somewords some words some words"/> 
<start some words2 some words2 some words2 some words2"/> 
<start some words3 some words3 some words3 some words3"/>

这样您就可以code在行/记录中应用您的逻辑。

(2和3是我加的,区分哪个“记录”)

于 2013-07-31T12:44:17.473 回答