Visit Our UNIX and Linux User Community

sed/shell scripting - add line if needed and not allready there

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed/shell scripting - add line if needed and not allready there
# 1  
Old 11-04-2009
sed/shell scripting - add line if needed and not allready there

I am writing a shell script that checks all .c files to see if they use fprintf or printf. If a file does, then the line #include <stdio.h> is added to the top of the file, unless it's already there.

This is what I've got:
egrep -l f?printf *.c | while read file;
do sed -i '1i\
#include <stdio.h>' $file; 

The problem is that it doesn't check to see if <stio.h> is allready there, so I've been thinking about using
egrep -l f?printf *.c | grep -L '#include <stdio.h>

but this doesn't work because it anonimizes the files when I use the pipe.

Last edited by computethis; 11-04-2009 at 03:07 AM.. Reason: added code tags
# 2  
Old 11-04-2009
Might be with a bit modification to your script is enough :

egrep -l f?printf *.c | while read file;
grep "#include <stdio.h>" $file > dev/null
if [ $? -ne 0 ]; then
sed -i '1i\
#include <stdio.h>' $file; 

# 3  
Old 11-09-2009

Previous Thread | Next Thread
Test Your Knowledge in Computers #971
Difficulty: Medium
Linux device drivers and kernel extensions do not run directly in kernel space.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help needed in Korn Shell scripting

#! /bin/ksh while read line do if ] ; then echo "no data" continue; fi echo "performing operation on $line" done < prg.txt (3 Replies)
Discussion started by: Juhi Kashyap
3 Replies

2. Shell Programming and Scripting

Most vexing: Sed or Awk scripting for date conversion needed

Hi, I have some files being sent to me that have dates in them in this format: from 1/8/2011 15:14:20 and I need the dates in this format (mysql date format) To 2011-01-08 15:14:20 all I have so far is the regexp that detects the format: sed -r -e 's@\1/\2/\3\4\5\6]::$@do... (7 Replies)
Discussion started by: Astrocloud
7 Replies

3. Shell Programming and Scripting

Help needed with Shell scripting

Hi All, I need to split a flatfile based on it's first character, I am using the following script awk '{print > "TEST_substr($0,1,1).txt"}' PROVIDER.txt It is returning files TEST_1 and TEST_2 But I am not getting the .txt file extension. I need the files like TEST_1.txt and ... (1 Reply)
Discussion started by: sam35
1 Replies

4. Shell Programming and Scripting

Help needed for shell scripting for oracle.

Hi, Please see contains both files created for automating the data from oracle through shell. 1)a_p.ksh #!/bin/ksh LOG=/home/A_P.log MESSAGE=/home/MESSAGE_A_P.txt mail_list=/home/AP_MAIL_LIST.txt data=/home/spooled_A_P.log echo "`date` Starting execution for A_P COUNT" > $LOG ... (2 Replies)
Discussion started by: fidelis
2 Replies

5. Shell Programming and Scripting

sed or awk scripting help needed

hi all, for an example : df -k output shows: $ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/cciss/c0d0p6 3099260 1117760 1824068 8% / /dev/cciss/c0d0p1 256666 18065 225349 8% /boot none 8219180 0 8219180 0% /dev/shm /dev/mapper/vglocal-home 1032088 245172 734488 26%... (7 Replies)
Discussion started by: raghur77
7 Replies

6. Shell Programming and Scripting

Help needed in shell scripting

" how to write a script to send an error in a log file to a particular E-Mail ID " Can anyone help me in this ? Regards (3 Replies)
Discussion started by: himvat
3 Replies

7. Shell Programming and Scripting

add a line at the end of a file using shell scripting

Hi All , I am new to shell scripting. i have a shell script(which is executed as a super user) , i want to it to do one more job for me. ie mounting a directory over other using lofs . i have done it manually using 1) using mount command mount -F lofs /export/home/dju /dju 2)... (4 Replies)
Discussion started by: meet123321
4 Replies

8. Shell Programming and Scripting

SHell Scripting Help Needed

Dear All, I have an input file like this interface Serial10/0/7:11.1 point-to-point description CLIENT:SA_INSTITUTO ANGLO MEXICANO Sitio Metepec 104452:0,165 bandwidth 64 ip vrf forwarding INSTITUTO-ANGLO ip address no ip directed-broadcast frame-relay... (2 Replies)
Discussion started by: cskumar
2 Replies

9. Shell Programming and Scripting

Help needed - shell scripting

I have a file that has text in the format below ABC / Some text / ABC / Some text / ABC / Some text / ABC / Some text / ABC / Some text / How can I seperate the text between a pair of 'ABC' into seperate files ??? any information would be of great help. Thanks (8 Replies)
Discussion started by: garric
8 Replies

Featured Tech Videos