Count Number Of lines in text files and append values to beginning of file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Count Number Of lines in text files and append values to beginning of file
# 8  
Old 04-28-2011
Quote:
Originally Posted by royalibrahim
INSERTING LINES WITHIN SCRIPTS

If you want to insert a line at the top (or anywhere) of a file within a shell script, use the ed editor.
Code:
string="hello"
ed << \EOF
e any_file
1i
${string}

That code is broken in multiple ways.

First, since the first letter of the heredoc delimiter, EOF, is quoted with a backslash, there will be no substitutions made by the shell within the heredoc. This means that "${string}" will appear literally instead of "hello".

Second, the heredoc delimiter, "EOF", which marks the end of the data is missing.

Third, you need to add a write command, w, to save the changes.

Fourth, before you can use the write command, the text that's inserted needs to be terminated with a lone dot on a line.

It's not all bad news, though. The edit, e, command can be used to load a file into the buffer without invoking ed once per file. If there are a very large number of files, the efficiency of my approach could be improved by only calling ed once and using the for loop to pipe commands into it.

Code:
for f in *; do
        l=$(wc -l < "$f")
        [ $l -lt 400 ] && continue
        printf 'e %s\n0a\nthere are 400 lines in this file and %d bonus lines\n.\nw\n' "$f" $((l-400))
done | ed -s

While the printf could be made more readable with a "%s\n" format string, the clarity of the original heredoc is unmatched by either of
Code:
printf '%s\n' "e $f" 0a "there are 400 lines in this file and $((l-400)) bonus lines" . w

or
Code:
printf '%s\n' \
        "e $f" \
        0a \
        "there are 400 lines in this file and $((l-400)) bonus lines" \
        . \
        w


Bleh. Smilie

Regards,
Alister

Last edited by alister; 04-28-2011 at 04:04 AM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare two files and count number of matching lines

Dear All, I would like to compare two files and return the number of matches found. Example File A Lx2 L1_Mus1 L1Md_T Lx5 L1M2 L1_Mus3 Lx3_Mus Lx9 Lx2A L1Md_A L1Md_F2 File B L1_Mus3 L1_Mus3 (3 Replies)
Discussion started by: paolo.kunder
3 Replies

2. Shell Programming and Scripting

Append Multiple files with file name in the beginning of line

Hi, I have multiple files having many lines like as bvelow: file Name a.txt abc def def xyz 123 5678 file Name b.txt abc def def xyz 123 5678 I would like to append files in the below format to a new file: file Name c.txt (7 Replies)
Discussion started by: rramkrishnas
7 Replies

3. Shell Programming and Scripting

How to count number of files in directory and write to new file with number of files and their name?

Hi! I just want to count number of files in a directory, and write to new text file, with number of files and their name output should look like this,, assume that below one is a new file created by script Number of files in directory = 25 1. a.txt 2. abc.txt 3. asd.dat... (20 Replies)
Discussion started by: Akshay Hegde
20 Replies

4. Shell Programming and Scripting

Count number of free lines in a text file

Hi Everybody I want to write a script to count the number of lines in a file that don't ahve any thing on it, the free lines, i try to do it with fgrep "" which means to grep on the spaces but it does not work. help me please? (3 Replies)
Discussion started by: hard_revenge
3 Replies

5. Shell Programming and Scripting

Help with script to read lines from file and count values

Hi, I need some help with a script I'm trying to write. I have a log file containing references to a number of different webservices. I wish to write a script that will list the webservices with a count as to how many times they appear in the log. An example of the log file content: ... (2 Replies)
Discussion started by: gman2010
2 Replies

6. Shell Programming and Scripting

append delimeter count for each line in text file

Hi guys, plz tell me how to achieve this how to delete the lines in a file using sed command (6 Replies)
Discussion started by: hari908
6 Replies

7. Shell Programming and Scripting

perl script on how to count the total number of lines of all the files under a directory

how to count the total number of lines of all the files under a directory using perl script.. I mean if I have 10 files under a directory then I want to count the total number of lines of all the 10 files contain. Please help me in writing a perl script on this. (5 Replies)
Discussion started by: adityam
5 Replies

8. UNIX for Dummies Questions & Answers

Comparing two files and count number of lines that match

Hello all, I always found help for my problems using the search option, but this time my request is too specific. I have two files that I want to compare. File1 is the index and File2 contains the data: File1: chr1 protein_coding exon 500 600 . + . gene_id "20532";... (0 Replies)
Discussion started by: DerSeb
0 Replies

9. UNIX for Dummies Questions & Answers

Read directory files and count number of lines

Hello, I'm trying to create a BASH file that can read all the files in my working directory and tell me how many words and lines are in that file. I wrote the following code: FILES="*" for f in "$FILES" do echo -e `wc -l -w $f` done My issue is that my file is outputting in one... (4 Replies)
Discussion started by: jl487
4 Replies

10. UNIX for Dummies Questions & Answers

Count of Number of Lines in a File

Dear Members, I want to count the number of lines in a file; for that i am using the following command : FILE_LINE_COUNT=`wc -l $INT_IN/$RAW_FILE_NAME` if i do an echo on FILE_LINE_COUNT then i get 241 /home/data/testfile.txt I don't want the directory path to be displayed. Variable... (1 Reply)
Discussion started by: sandeep_1105
1 Replies
Login or Register to Ask a Question