GNU/Linux >> Linux の 問題 >  >> Linux

大きなファイルにSedとParallelを使用して、行を別のコンテンツに置き換えますか?

大きなファイル(50G)があり、変数$iの内容で始まる行を置き換えたいと思います 変数$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 

行を削除するだけで、うまくいきません。

承認された回答:

あなたの問題はここにあると思います:

'sed -i /^$i/d'

これを試してください:

"sed -i /^$i/d"

変数$i 一重引用符で囲まれているため展開できません。これらを二重引用符に切り替えると、Bashで変数$iを使用して展開できます。 。


Linux
  1. sed のようなテキストを python に置き換えるにはどうすればよいですか?

  2. grep と sed を使用して文字列を検索して置換する

  3. ディレクトリとサブディレクトリで検索して sed に置き換えます

  1. sed を使用して構成ファイルの変数を置き換える方法は?

  2. Linuxでjar内のファイルをコマンドラインに置き換える方法は?

  3. sed を使用して特定のパターンを置き換える

  1. 行の範囲を行の範囲(sedまたはその他)に置き換えますか?

  2. パターンに一致する行を別のファイルの行に順番に置き換えますか?

  3. ファイルの内容をエンコードして1行としてエコーしますか?