Sed, awk veya gawk kullanarak ara ve değiştir gibi şeylerin nasıl yapılacağına dair çok sayıda örnek ve man sayfası görüyorum.
Ancak benim durumumda, belirli bir değeri çıkarmak için bir metin dosyasına karşı çalıştırmak istediğim normal bir ifadem var. Ara ve değiştir yapmak istemiyorum. Bu Bash'den çağrılıyor. Bir örnek verelim:
Örnek normal ifade:
.*abc([0-9]+)xyz.*
Örnek girdi dosyası:
a
b
c
abc12345xyz
a
b
c
Kulağa geldiği kadar basit, sed / awk / gawk'ı nasıl doğru çağıracağımı çözemiyorum. Yapmayı umduğum şey, bash betiğimin içinden:
myvalue=$( sed <...something...> input.txt )
Denediğim şeyler şunları içerir:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing