Saya ingin mengganti baris yang cocok dengan pola dari satu file dari baris dalam urutan dari file lain, misalnya, diberikan:
file1.txt :
aaaaaa
bbbbbb
!! 1234
!! 4567
ccccc
ddddd
!! 1111
kami ingin mengganti baris yang dimulai dengan !! dengan baris file ini:
file2.txt :
first line
second line
third line
jadi hasilnya seharusnya:
aaaaaa
bbbbbb
first line
second line
ccccc
ddddd
third line
Jawaban yang Diterima:
Mudah dapat dilakukan dengan awk
awk '
/^!!/{ #for line stared with `!!`
getline <"file2.txt" #read 1 line from outer file into $0
}
1 #alias for `print $0`
' file1.txt
Versi lain
awk '
NR == FNR{ #for lines in first file
S[NR] = $0 #put line in array `S` with row number as index
next #starts script from the beginning
}
/^!!/{ #for line stared with `!!`
$0=S[++count] #replace line by corresponded array element
}
1 #alias for `print $0`
' file2.txt file1.txt
Bagaimana Cara Mengatur Bash Untuk Menjalankan *.exe Dengan Mono?
Reposync Kecualikan Subdir dari Mirror?