can you please help me with this shell command?

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions can you please help me with this shell command?
# 1  
Old 01-18-2011
can you please help me with this shell command?

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!

1. The problem statement, all variables and given/known data:

I need to write one c-shell command that does the following:
using the unix "find" command , i need to find all the files, from the current directory and downwards, whose name end with .txt and that contain the string "some text", and for each file that is found, print the first 4 letters of its name.

again, this is supposed to be done in one c-shell command.


2. Relevant commands, code, scripts, algorithms:

i am asked to use the "find" command


3. The attempts at a solution (include all code and scripts):

i managed to write a command that finds all the files whose name ends with .txt and that contain the string "some text", and for each file that is found, prints its name.
with this command:
find -name *.txt -exec grep -h "some text" {} \;

but i couldn't find a way to only print the first 4 letters of each file name.


4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):

i am a student in Tel-Hai college in northern Israel.
the professor is Guy Leshem.


Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).
# 2  
Old 01-18-2011
Code:
| cut -c1-4

# 3  
Old 01-18-2011
To get the filename I think you should be using "grep -l" not "grep -h".
Enclose the wildcard filename in single quotes to cause "find" to expand the filenames not Shell.
Confine the search to files "-type f".

Code:
find -type f -name '*.txt' -exec grep -l "some text" {} \;

I dont' write "csh" code, but you will need to process each filename with the "basename" command to remove the directory tree information from each filename, then use "cut" to shorten each filename.
# 4  
Old 01-19-2011
thank you very much :)

thank you very much Smilie
# 5  
Old 01-21-2011
You may have completed your assignment, but this is worth knowing: the xargs command comes in very handy here:
Code:
find -type f -name '*.txt' | 
grep -l "some text" |
sed -p 's/^\(....\).*/\1/'

The -l option of grep prints only the filename of matching files. The sed command is another way of achieving the effect used by "cut", above.

The reason for xargs is efficiency: instead of calling "grep" for each file, as find does, xargs calls grep only as many times as needed given the OS constraints (length of command line). In everyday work, I use it once a day at least.
# 6  
Old 01-22-2011
thanks again :)

thanks again Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Shell script not working but command works in command prompt

Hi everyone I have a problem with my script If I try directly this command /usr/bin/nice -n 19 mysqldump -u root --password="******" wiki_schneider -c | nice -n 19 gzip -9 > /point_de_montage/$(date '+%Y%m%d')-wiki-db.sql.gz It works But if I simply add this command in a script and... (8 Replies)
Discussion started by: picemma
8 Replies

2. UNIX for Dummies Questions & Answers

Which of the following command displays your login shell in bash shell?

Options:: A)$shell B)echo $ bash C)echo $ O D)$ O (1 Reply)
Discussion started by: raghugowda
1 Replies

3. UNIX Desktop Questions & Answers

command to run another shell on top of your default shell?

Can someone point me to the right command to to run another shell on top of your default shell? Thanks PS If admin sees this It is not home work. I am old man who wants to learn unix in my spare time. I CURRENTLY DO NOT GO SCHOOL, COLLEGE OR UNIVERSITY. (2 Replies)
Discussion started by: Bill Thompson
2 Replies

4. Shell Programming and Scripting

When i am trying to execute export command within a shell script it is saying command not found.

I am running the export command within a view to use that value inside my build script. But while executing it it is saying "export command not found" My code is as follows: -------------------------- #!/bin/sh user="test" DIR="/bldtmp/"$user VIEW="test.view1" echo "TMPDIR before export... (4 Replies)
Discussion started by: dchoudhury
4 Replies

5. Shell Programming and Scripting

Any shell or hack that makes the shell command line take vi commands?

basically i'm tired of hitting the left arrow a few dozen times when correcting a mistake or modifying a history command i'd like to use vim style key shortcuts while on the command line so that a 55 moves the cursor 55 places to the left... and i want all the other vi goodies, search of... (3 Replies)
Discussion started by: marqul
3 Replies

6. Shell Programming and Scripting

help with shell script: cp command not working, but mv command works...

Hello. I would like to ask your help regarding the cp command. We are using a cp command to create a back-up copy of our file but to no avail. It's just not working. We already checked the file and directory permissions and all seems correct. We have a script (ftp.script) which calls on... (1 Reply)
Discussion started by: udelalv
1 Replies

7. Shell Programming and Scripting

can anyone help with shell script command about searching word with grep command?

i want to search in the current directory all the files that contain one word for example "hello" i want to achieve it with the grep command but not with the grep * (2 Replies)
Discussion started by: aintour
2 Replies

8. Shell Programming and Scripting

Need to Write Shell Script based off of this shell command

I'm trying to read a bunch of log files and output the lines that contain particular strings. To accomplish this, I've been running the following from the command line: find . -name "*" | xargs grep " " | grep " " > output.txt Two grep statements are needed in case I'm looking for a... (3 Replies)
Discussion started by: Rally_Point
3 Replies

9. HP-UX

How to use more than one MPE command STREAM with Unix command in a single shell?

Hello, I have problem in writing the shell script involving MPE command STREAM related to HP-UX and Unix command. Script is sh "nlshCMD 'STREAM <job name1>' | 'SHOWJOB' | grep $HPJOBNUM" sh "nlshCMD 'STREAM <job name2>' | 'SHOWJOB' | grep $HPJOBNUM" sh "nlshCMD 'STREAM <job name3>' |... (1 Reply)
Discussion started by: bosskr
1 Replies

10. Shell Programming and Scripting

How to use more than one MPE command STREAM with Unix command in a single shell?

Hello, I have problem in writing the shell script involving MPE command STREAM related to HP-UX and Unix command. Script is sh "nlshCMD 'STREAM <job name1>' | 'SHOWJOB' | grep $HPJOBNUM" sh "nlshCMD 'STREAM <job name2>' | 'SHOWJOB' | grep $HPJOBNUM" sh "nlshCMD 'STREAM <job name3>' |... (0 Replies)
Discussion started by: bosskr
0 Replies
Login or Register to Ask a Question