Visit Our UNIX and Linux User Community


Delete first line from file and more....


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete first line from file and more....
# 1  
Old 05-17-2007
Delete first line from file and more....

Hello, I have to deal with several files that will be named something like this:
E00001.TXT, E00002.TXT etc.
Each file will have a alpha character on the first position of the first line which I want to place in a variable, then delete the entire line leaving the remainder of text. This new file I want to be named the original filename prefixed by the character I previously extracted so the new file might be RE00001.TXT. Usually, out of habit I call tcl scripts to do file manipulation but I wanted to know if there was a fairly starighforward way to do this all in my Unix script (ksh). I don't know much about sed or awk so if you give examples with that and don't mind providing a brief description of what does what that would be helpful. Could the grep command provide all the functionality I'm asking for?

TIA

D
# 2  
Old 05-17-2007
dfb,
See if this works for you:
Code:
for mFile in E?????.TXT
do
  mFirstChar=`head -1 $mFile | cut -c1`
  mNewFile=$mFirstChar$mFile
  echo "new file = "$mNewFile
  mv $mFile $mNewFile
done

# 3  
Old 05-17-2007
Shell, I like it, very simple, I don't think it addresses the issue of my new file containing everything except the first line though, does it? How can I get the newfile to exclude the first line from the source file, is that the cut command again?

Thx again
# 4  
Old 05-17-2007
Here it is removing the first line:
Code:
for mFile in E?????.TXT
do
  mFirstChar=`head -1 $mFile | cut -c1`
  mNewFile=$mFirstChar$mFile
  echo "new file = "$mNewFile
  sed '1d' $mFile > $mNewFile
done

# 5  
Old 05-17-2007
Shell, I'll try it, my thanks!!!
# 6  
Old 05-17-2007
Code:
awk '
FNR==1 { ch=substr($0,1,1)} #get first character from first line
FNR>1 { # get 2nd line onwards
        newfile=ch FILENAME
	print > newfile #save 2nd line onwards to newfile.         
      }
' E*.TXT

# 7  
Old 07-02-2009
You could use sed to do the job:

Code:
sed 1d E000* -i


In the above example, all the the files that begin with E000 will have the first line erased.

Hope this helps.

Previous Thread | Next Thread
Test Your Knowledge in Computers #751
Difficulty: Medium
The first IBM 5150 PCs had two 5.25-inch 360 KB single sided double density (SSDD) floppy disk drives
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

File same line delete

Hi, I want to do file1 to file2. Rows will be different every time. Thanks. file1 Fru-Name :BCNMB-B Fru-Location :/chassis-1/motherboard-1 Node-Name :LMP-1-1-1 Fru-Name :BMPP2-B Fru-Location :/chassis-1/slot-1 Node-Name :CFPU-0 Fru-Name :BMPP2-B Fru-Location... (2 Replies)
Discussion started by: ozcanaydin
2 Replies

2. UNIX for Advanced & Expert Users

How to find a string in a line in UNIX file and delete that line and previous 3 lines ?

Hi , i have a file with data as below.This is same file. But actual file contains to many rows. i want to search for a string "Field 039 00" and delete that line and previous 3 lines in that file.. Can some body suggested me how can i do using either sed or awk command ? Field 004... (7 Replies)
Discussion started by: vadlamudy
7 Replies

3. Shell Programming and Scripting

How to delete either of one line from file.?

Hi gurus, I have one file it may contains one line is "START" or "FINISH" either one of them. I use below command to delete it, but it doens't work. sed '/^START\|^END/d' <inputfile > outfile anybody can help me to fix this. thanks in advance. (12 Replies)
Discussion started by: ken6503
12 Replies

4. Shell Programming and Scripting

Delete a particular line from a file

I have a file of following form 2886758410 2886758500 17 1999-Mar-18 16:26:26 1 0 52 139 1129 2886758420 2886758500 17 1999-Mar-18 16:26:35 1 0 52 139 1131 2886758420 2886758500 17 1999-Mar-18 16:26:41 0 0 56 56 1132... (4 Replies)
Discussion started by: vaibhavkorde
4 Replies

5. Shell Programming and Scripting

Delete line from file

hi all, i have trackfile.txt which contains the data as 0 /home8/mc09ats/UnixCw/t1 1 /home8/mc09ats/UnixCw/t2 2 /home8/mc09ats/UnixCw/t3 3 /home8/mc09ats/UnixCw/t4 if user says delete 1 then i want to delete 1 /home8/mc09ats/UnixCw/t2 line from... (3 Replies)
Discussion started by: AbhijitIT
3 Replies

6. UNIX for Dummies Questions & Answers

Delete a line from a file

Hi, Need to delete a line from a file, file is too large so cannot use vi. I know the line number that has to be deleted... How can this be done ? (8 Replies)
Discussion started by: rohini
8 Replies

7. Shell Programming and Scripting

how to delete a line from the file

Hi, I have a file which contains entries with different numbers, for example: 275|24hroff|sel,fill,dbw| 2758|24hroff|sel,fill,dbw| 2765|24hroff|sel,fill,dbw| 2920|24hroff|sel,fill,dbw| I need to delete a line which contains certian number, for instance 275 I was trying to use 'sed' but... (3 Replies)
Discussion started by: aoussenko
3 Replies

8. UNIX for Dummies Questions & Answers

How to delete line from a file

Hi , I have a file it content is like that /vol.nas/u08/aip_triage/hany/Tesko/:CC::RPAS /home/biblawh/myscript:CC::RPAS i need to search for a certain pattern inside that file and delete the line if i find this pattern without redirecting the output into another file . so i used the... (0 Replies)
Discussion started by: ramezernest
0 Replies

9. Shell Programming and Scripting

delete line in a file

Hi all, I would like to delete a line in file.txt which has a list of filename. example: file_a file_b file_c lets say i have file_b in my directory, then i should delete file_b in file.txt and get output file.txt with only file_a and file_b. Below is my script, my result is still ... (12 Replies)
Discussion started by: dta4316
12 Replies

10. UNIX for Dummies Questions & Answers

Delete line(s) from file

What is the easiest way to delete a line from a file? I have a file that contains list for Domestic and Foreign customers. I want to delete all lines staring with Foreing. TIA (4 Replies)
Discussion started by: elchalateco
4 Replies

Featured Tech Videos