In fact it appends a pipe ("s/.*/&|/" means replace a whole line with itself plus a pipe) only in lines which already contain at least one pipe character ("/|/").
Try this:
This reads: if there is a pattern: "not-pipe, followed by line-end" ("[^|]$") found, then replace it with itself followed by a pipe. Because the line-end is not really a character this works.
I hope this helps.
bakunin
Or, using the initial approach, search for a non-| at the end, then substitute:
This has even got a more efficient substitution.
I have a bunch of files named publish.php within subdirs. I need to append a line at the end of each file. I thought I could do it with find and echo like this:
find . -name publish.php -exec echo "<? include('path/to/file.php'); ?>" >> '{}' \;
but that appends the line to a file named {}... (2 Replies)
I have file called xx
Now i want to rename this file as xxYYYYMMDD_HHMIAM.xls
Here is my code..
export DATE1=`date +%Y%m%d`
mv xx xx$DATE1
This code renames as xxYYYYMMDD
Now how can i append HHMIAM at the end of the file?
Any help is appreciated... (3 Replies)
Hello, I wanted to append 'XYZ' at the end of the text file. How can i do this?
I searched the forums and i am not getting what i want. Any help is highly appreciated. Thanks (2 Replies)
Hi,
I have a directory with around 100k files and files with varying sizes(10GB files to as low as 5KB). All the files are having pipe dilimited records.
I need to append 7 pipes to the end of each record, in each file whose name contains _X3_ and need to append 10 pipes to the end of each... (3 Replies)
Hi Experts,
Am relatively new to shell programming so would appreciate some help in this regard.
I am looking at reading from a file, line by line, picking the first word of each line and appending it to the end of the line.
Any suggestions?
INPUT FILE -
3735051 :... (7 Replies)
I have searched the forms and I can not find info on appending each line of one file to the same line of another file. I know that I can cat one file to another or append the 2nd file to the end of the 1st but not quite sure how to append one line of data to another. For example
File 1 has ... (2 Replies)
hi,
i m having a group of files starting with name 'Itemdelete<timestamp>' .
my requirment is to append a blank line at the end of files ,using unix in all the Itemdelete* files with a single unix command without using scripts.can any body put some light to this requiremnt.
regards
Angel (4 Replies)
Hi,
My requirement is to append a date in format DDMMYYYYHHMISS at the end of first line of file which is HEADER. I am trying command
sed -i '1s/.*/&<date_format>/' <file_name>
Where <date_format>=`date +%m%d%Y%H%M%S`
I am somehow misisng the right quotes ti get this added in above... (2 Replies)
I need to append |\r\n (a pipe character and CRLF) at end of each record in Unix to all records where they are not already present.
So first check for the presence of |\r\n and if absent append it else do nothing (3 Replies)
Discussion started by: abhilashnair
3 Replies
LEARN ABOUT PLAN9
pipe
PIPE(2) System Calls Manual PIPE(2)NAME
pipe - create an interprocess channel
SYNOPSIS
#include <u.h>
#include <libc.h>
int pipe(int fd[2])
DESCRIPTION
Pipe creates a buffered channel for interprocess I/O communication. Two file descriptors are returned in fd. Data written to fd[1] is
available for reading from fd[0] and data written to fd[0] is available for reading from fd[1].
After the pipe has been established, cooperating processes created by subsequent fork(2) calls may pass data through the pipe with read and
write calls. The bytes placed on a pipe by one write are contiguous even if many processes are writing. Write boundaries are preserved:
each read terminates when the read buffer is full or after reading the last byte of a write, whichever comes first.
The number of bytes available to a read(2) is reported in the Length field returned by fstat or dirfstat on a pipe (see stat(2)).
When all the data has been read from a pipe and the writer has closed the pipe or exited,read(2) will return 0 bytes. Writes to a pipe with no reader will generate a note sys: write on closed pipe.
SOURCE
/sys/src/libc/9syscall
SEE ALSO intro(2), read(2), pipe(3)DIAGNOSTICS
Sets errstr.
BUGS
If a read or a write of a pipe is interrupted, some unknown number of bytes may have been transferred.
When a read from a pipe returns 0 bytes, it usually means end of file but is indistinguishable from reading the result of an explicit write
of zero bytes.
PIPE(2)