به کمک 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