
$i
私は大きなファイル(50G)を持ち、変数の内容で始まる行を置き換えるコマンドを使用したいと思います。$newline
parallel
私のスクリプトは次のとおりです
#!/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
。