对于大文件,使用 sed 和 parallel 将一行替换为另一个内容

对于大文件,使用 sed 和 parallel 将一行替换为另一个内容

我有一个大文件(50G),我想使用命令替换以$i变量内容开头的行。$newlineparallel

我的脚本如下

#!/bin/sh 
File="test.txt"
i="foo"
newline="helooooooo"

parallel -a $File -k --block 30M --pipe-part 'sed -i /^$i/d' $File
echo $newline >> $File 

它对我不起作用,只需删除该行即可。

答案1

我认为你的问题在这里:

'sed -i /^$i/d'

尝试这个:

"sed -i /^$i/d"

该变量$i无法扩展,因为它用单引号括起来,将它们切换为双引号允许 Bash 使用您的变量扩展它们$i

相关内容