به صورت کلی برای اینجور کارها از awk استفاده میشه و برای ویرایش از sed.
سینتکس اون هم خیلی ساده هست،
برای پیدا کردن و نشان دادن تمام خطهایی که دارای pattern1 هستند.
awk '/pattern1/ {print}' matne-morede-nazar.txt
برای پیدا کردن و نشان دادن تمام خطهایی که دارای pattern1 یا pattern2 یا pattern3 یا pattern4 هستند.
awk '/pattern1|pattern2|pattern3|pattern4/ {print}' matne-morede-nazar.txt
برای patternها میشه از
regular syntax که به طور خلاصه بهش میگن (regex یا regexp) استفاده کرد.
برای ذخیره کردنش هم از < استفاده میشه.
awk '/pattern1/ {print}' matne-morede-nazar.txt > file-zakhire-shode.txt
با این توضیحها فرض میکنیم اسم فایل شما matn.html هست، پس میشه:
awk '/mp4/ {print}' matn.html
که هرخطی رو که دارای mp4 باشه نشون میده ولی از اونجایی که خطهایی که ما میخوایم این نیست:
<meta name="video_type" content="video/mp4" />
پس بهش میگیم فقط اونهایی که قبلش نقطه هست بهمون بده، که میشه:
awk '/\.mp4/ {print}' matn.html
نکته: توی regular expression نقطه (.) به معنای این هست که یک کاراکتر هست که برای ما مهم نیست، هرچی میتونه جاش رو بگیره. (اصطلاحاً به اینها میگن meta character) و برای اینکه بهش حالی کنیم که منظور ما این نیست که هر کاراکتری بلکه منظور ما خود نقطه هست اصطلاحالاً باید اون رو escape کنیم که با استفاده از back slash قبل از اون این کار میشه
\.