我必须使用从一个文件的第二列提取的文本来编写一个相当大的文本文件(> 300,000 行),然后在每一行前面添加和附加文本,最后将其写入新文件。
我有以下 while 循环,它运行良好。但它很慢,每次运行都要花很多分钟。我怀疑有更好的 awk 配方/方法,速度会快得多。有人能建议一种更快的方法吗?
SOURCEFILE 示例
useless9 important1 more useless stuff
useless8 important2 more useless stuff
useless7 important3 more useless stuff
useless6 important4 more useless stuff
从源文件中提取文本并输出最终结果文件。
while read line; do
mytext=`echo $line | awk -v RS='\r\n' '{print $2}'`
echo "$PrePattern $mytext $PostPattern" >> $OUTFILE
done < $SOURCEFILE
输出文件
PrePattern text important1 PostPattern text
PrePattern text important2 PostPattern text
PrePattern text important3 PostPattern text
...
答案1
你需要多学习一下awk。
awk '{print "prepattern mytext "$2" postpattern";}' <$sourcefile >$outfile