我有一个文件,其中有一些记录,每条记录分为多行。
file.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
任何人都可以帮我解决数据记录问题吗?
答案 0 :(得分: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,以区分哪个“记录”)