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
.