Saya memiliki file besar (50G) dan saya ingin mengganti baris yang dimulai dengan konten variabel $i dengan isi variabel $newline menggunakan parallel perintah.
Skrip saya diberikan di bawah
#!/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
Ini tidak bekerja untuk saya, hanya menghapus baris saja.
Jawaban yang Diterima:
Saya rasa masalah Anda ada di sini:
'sed -i /^$i/d'
Coba ini:
"sed -i /^$i/d"
Variabel $i tidak dapat diperluas karena dibungkus dengan tanda kutip tunggal, mengalihkannya ke tanda kutip ganda memungkinkan Bash untuk memperluasnya dengan variabel Anda $i .