به کمک sed میتوانید اطلاعات فایلهای متنی را با regular expression ها فیلتر کنید. به عنوان نمونه برای فایل ورودی زیر:
data.txt name family hooshang rahimi mahsa kazemi dorsa sadegh
اجرا کد زیر:
cat data | sed -e '/kazemi/d'
خروجی زیر را تولید میکند:
name family hooshang rahimi dorsa sadegh
چند نمونه دیگر:
cat data.txt|sed -e 's/\(\w\)/> \1/' # substitution > name family > mohsen kazemi > hooshang rahimi > mahsa kazemi > dorsa sadegh cat data.txt | sed -n -e '/.*mi$/p' # printing # -n switch for not printing by default # `p` command for print line mohsen kazemi hooshang rahimi mahsa kazemi # a more useful example could be: cat /etc/squid/squid.conf | sed -ne '/^[^#]/p' # strip comment lines from Squid configuration file cat data | sed -e '1d' # no regulat expression pattern # delete first line hooshang rahimi dorsa sadegh mahsa kazemi dorsa sadegh pwd /home/me/desktop/here pwd | sed -e 's#/#/\v/g' # change modifier to # # use `g` command to match pattern multiple times on line / home/ me/ desktop/ here
sed به صورت خط به خط پترن را به ورودی اعمال میکند ولی به کمک GNU sed میتوانیم عملیاتی روی خطوط دیگر هم انجام دهیم:
cat data.txt | sed -e '/rahimi/, +1d' # delete /rahimi/ and line after it name family mohsen kazemi dorsa sadegh