How to prepend filename to its content without a third file?
Hello,
Is possibly there a way to prepend the filename to its content without a third file? The reason is to add a header to each file contents to distinguish each other when they are pasted side-by-side.
for i in *.txt; do (echo "geneID $i" ; cat $i) > ${i}; done
but got error: input file is output file
I'm aware of the solution is to use a tmp file, and rename it to the original name.
Code:
for i in *.txt; do (echo "geneID $i" ; cat $i) > ${i}.tmp; mv ${i}.tmp ${i}; done
I am wondering if there is a way to do this job without the "tmp" file. The closest function I can think of is to add filename to its content within vim and :wq which does not require a third file name, but I have hundreds of files to modify.
Thanks!
Last edited by yifangt; 05-10-2016 at 05:28 PM..
Reason: typo
Thanks Don!
Now I understand xbin's way using the old editor ed.
The left side of the pipe bugs me with a mixture of printf "%s\n" and other options for ed, as I can only understand this way:
Code:
printf "%b\n" "1i\ngeneID\t$file\n.\nw" | ed -s $file
which seems working too.
When I learned vim, sometime I wished there is similar function as piped to receive stdout.
EDIT: I am so naive! Experts have dug way deeper than what I thought, like my this question.ed, ex, and new vipe in moreutils package.
Hi,
I have a process which outputs to a log.
Below is the code snippet:
process &> $LOGFILE&
The log file keeps on updating whenever a transaction is processed.
The log file has a time stamp added so every time I kill the process and start the process a new log file is... (4 Replies)
Currently I am redirecting STDERR and STDOUT to a log file by doing the following
{
My KSH script contents
} 2>&1 | $DEBUGLOG
Problem is the STDERR & STDOUT do not have any date/time associated.
I want this to be something that i can embed into a script opposed to an argument I use... (4 Replies)
I want to print out a directory listing, then append ] to the end of each line. I'm trying to create a list of Wiki links based on folder listings that i can just copy and paste without having to edit 100's of file listings.
Using sed i've figured out to do something like this:
sed... (4 Replies)
I have two files. File 'a' has contents:
1|1
2|2
3|3
4|4
and file 'b' has contents:
abc|def
hij|klm
nop|qrs
tuv|wxy
I would like to prepend file 'a' to file 'b' (with pipe) such that the contents of 'b' will be:
1|1|abc|def
2|2|hij|klm
3|3|nop|qrs
4|4|tuv|wxy (3 Replies)
How can i prepend the content of a file to another file? I tried:
sed '1r textfile' myfile
but it inserted the text AFTER the first line? What would be a good method?
I can easily append lines to a file using the ">>" operator, is the something similar in bash to prepend lines?
Kind regards... (2 Replies)
Hi,
I have to rename all occurance of CUST_MST to RESELLER_MST both in filename and file content under a directory (say D0) which contains multiple (2-3 levels) sub directory.
Example:
D0 -> D1 -> D2 has a file CUST_MST_TEMP.txt
this contains :
> cat /D0/D1/D2/CUST_MST_TEMP.txt... (3 Replies)
Dear Experts,
Please help to teach me how to add the filename into the file content.
Actually the file name are EVENTS-20050912.
***************New output that I want***************
EVENTS-20050912 03:33:37 ALARM: BTSSPAN-277-1 30-18013
EVENTS-20050912 12:10:28 ALARM: BTSSPAN-297-2... (1 Reply)
:confused: There is a flat file on my system which contains email addreses of people in my company. This file is utilized when sending notifications for various things. However nobody knows where this file is located or what it is named. The only thing we know is the email address of a user who... (4 Replies)