basicsys@mars~/lec7>echo -e "acdat\nacatb" | egrep "cat|dog" acatb basicsys@mars~/lec7>echo -e "adogb\nacat\nacow\ncatb"|egrep "^cat|dog|cow$" adogb acow catb basicsys@mars~/lec7>cat F1 ab cd shalom ab cd shalom1 ab cd shalom 123 basicsys@mars~/lec7>cat F1 | egrep "^[ ]*[^ ]+[ ]+[^ ]+[ ]+shalom([ ]|$)" ab cd shalom ab cd shalom 123 basicsys@mars~/lec7>echo "ab cd" | egrep "\" ab cd basicsys@mars~/lec7>echo "ddab cd" | egrep "\" basicsys@mars~/lec7>echo "dd ab cd" | egrep "\" dd ab cd basicsys@mars~/lec7>echo "dd ab cdab" | egrep "\" dd ab cdab basicsys@mars~/lec7>echo "dd cdab" | egrep "\" basicsys@mars~/lec7>echo "dd cd ab" | egrep "\" dd cd ab basicsys@mars~/lec7>cat F1 ab cd shalom ab cd shalom1 ab cd shalom 123 basicsys@mars~/lec7>cat F1 | egrep "\<.*\>.*\<.*\>.*\" ab cd shalom ab cd shalom 123 basicsys@mars~/lec7>cat F1 ab cd shalom ab cd shalom1 ab cd shalom 123 xy ab cd shalom 123 basicsys@mars~/lec7>cat F1 | egrep "^[ ]*\<[^ ]*\>[ ]*\<[^ ]*\>[ ]*\" ab cd shalom ab cd shalom 123 basicsys@mars~/lec7>echo "abbddd fff34a" | egrep "^([a-z]).*\1$" abbddd fff34a basicsys@mars~/lec7>echo "abbddd fff34a " | egrep "^([a-z]).*\1$" basicsys@mars~/lec7> basicsys@mars~/lec7>echo "%bbddd fff34%" | egrep "^(.).*\1$" %bbddd fff34% basicsys@mars~/lec7>echo "abc123abc123" | egrep "^(.*)\1$" abc123abc123 basicsys@mars~/lec7>echo "" | egrep "^(.*)\1$" basicsys@mars~/lec7>echo "" | egrep "^(.+)\1$" basicsys@mars~/lec7> basicsys@mars~/lec7>echo "abc123abc123a" | egrep "^((.).*)\1\2$" abc123abc123a basicsys@mars~/lec7>echo "abc123abc123" | egrep "^((.).*)\1\2$" basicsys@mars~/lec7>echo "abc123rabc123" | egrep "^((.).*)\1\2$" basicsys@mars~/lec7>cat F1 123 abc def abbbab basicsys@mars~/lec7>egrep ab F1 abc abbbab basicsys@mars~/lec7>egrep -c ab F1 2 basicsys@mars~/lec7>egrep -v ab F1 123 def basicsys@mars~/lec7>egrep -v abc F1 123 def abbbab basicsys@mars~/lec7>egrep -v -c abc F1 3 basicsys@mars~/lec7>egrep -l abc F1 F1 basicsys@mars~/lec7>cat F1 123 abc def abbbab basicsys@mars~/lec7>cat F2 abv abc eee basicsys@mars~/lec7>egrep a F1 F2 F1:abc F1:abbbab F2:abv F2:abc basicsys@mars~/lec7>egrep -h a F1 F2 abc abbbab abv abc basicsys@mars~/lec7>egrep -c a F1 F2 F1:2 F2:2 basicsys@mars~/lec7>egrep -c -h a F1 F2 2 2 basicsys@mars~/lec7>grep -E -c -h a F1 F2 2 2 basicsys@mars~/lec7> basicsys@mars~/lec7>mkdir t basicsys@mars~/lec7>echo "I am a1" >|t/a1 basicsys@mars~/lec7>mkdir t/ad1 basicsys@mars~/lec7>echo "I am ad1/f1" >|t/ad1/f1 basicsys@mars~/lec7>echo "I am ad1/f2" >|t/ad1/f2 basicsys@mars~/lec7>mkdir t/fd1 basicsys@mars~/lec7>echo "I am fd1/a3" >|t/fd1/a3 basicsys@mars~/lec7>mkdir t/fd1/fd2 basicsys@mars~/lec7>echo "I am fd1/fd2/f3" >|t/fd1/fd2/f3 basicsys@mars~/lec7>cd t basicsys@mars~/lec7/t>find . -name 'f*' ./fd1 ./fd1/fd2 ./fd1/fd2/f3 ./ad1/f2 ./ad1/f1 basicsys@mars~/lec7/t>cd .. basicsys@mars~/lec7>find t -name 'f*' t/fd1 t/fd1/fd2 t/fd1/fd2/f3 t/ad1/f2 t/ad1/f1 basicsys@mars~/lec7>find ~/lec7/t -name 'f*' /home/cs/segel/basicsys/lec7/t/fd1 /home/cs/segel/basicsys/lec7/t/fd1/fd2 /home/cs/segel/basicsys/lec7/t/fd1/fd2/f3 /home/cs/segel/basicsys/lec7/t/ad1/f2 /home/cs/segel/basicsys/lec7/t/ad1/f1 basicsys@mars~/lec7/t>find . -size 8c ./a1 basicsys@mars~/lec7/t>find . -name 'f*' -type f ./fd1/fd2/f3 ./ad1/f2 ./ad1/f1 basicsys@mars~/lec7/t>find . -exec echo I am {} \; I am . I am ./fd1 I am ./fd1/fd2 I am ./fd1/fd2/f3 I am ./fd1/a3 I am ./a1 I am ./ad1 I am ./ad1/f2 I am ./ad1/f1 basicsys@mars~/lec7/t>cat P1 #!/bin/bash echo "$1"|tr "/" "\n" | tail -1 basicsys@mars~/lec7/t>P1 d1/d2/d3 d3 basicsys@mars~/lec7/t>find . -exec P1 {} \; . P1 fd1 fd2 f3 a3 a1 ad1 f2 f1 The following program P1 scan the files in the directory in which P1 runs (at any depth inside the directory) and for every file whose name repeats at least twice in the directory gives the user an option to remove it. The program uses another program called get_file_name which is shown below. basicsys@mars~/lec7>cat P1 #!/bin/bash find . -type f -exec get_file_name {} \; >| tmp cat tmp | sort | uniq -d >| tmp1 for x in $(cat tmp1) do find . -name "$x" -ok rm {} \; done basicsys@mars~/lec7>cat get_file_name #!/bin/bash echo $* | tr "/" "\n" | tail -1