Son iki sayıyı (bir int, bir kayan nokta; ardından isteğe bağlı boşluk) alıp yalnızca yazdırmak istiyorum.
Misal:
foo bar <foo> bla 1 2 3.4
Yazdırmalı:
2 3.4
Şimdiye kadar aşağıdakilere sahibim:
sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/replacement/p'
bana verecek
foo bar <foo> bla 1 replacement
Ancak, bunu 1. grupla değiştirmeye çalışırsam, tüm satır yazdırılır.
sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/\1/p'
Satırın yalnızca gruptaki normal ifade ile eşleşen bölümünü nasıl yazdırabilirim?
-r
Veya "--regexp-extended" seçeneğini eklemek zorunda kaldım, aksi takdirdeinvalid reference \1 on
s "command's RHS" hatasını alıyordum .