Longhand using builtins only, OSX 10.7.5, default shell and terminal...
... ... ...
... ... ...
This happens to work with the supplied sample data (since it does not contain any % or \ characters, but it is very dangerous to use a user-supplied string as a format operand to printf.
This would be much safer:
(Note also the addition of the -r option to read.)
Last edited by Don Cragun; 10-30-2014 at 04:43 PM..
Reason: Simplify output redirection.
This User Gave Thanks to Don Cragun For This Post:
I'm trying to match the end of line character in a shell script under bash. What I have done it got is a loop that reads each line of a file into a temp variable and then I get each letter of that variable and do some work on it. One think I want to do it check if the character I checking if the... (1 Reply)
How do i determine what the end of the line character is in a text file. for eg. is it \n or \f or \t etc..
Is there a unix command for this? (5 Replies)
Hi, sorry for being dumb but I have a file with a variable amount of records (day to day it differs) but is fixed at 80 characters wide. Unfortunately the 80th and last charachter in each line is a "^M" carriage return character which i want to get rid of. Is there a really easy command that i can... (6 Replies)
hi all, i have this question: How to add new line character at the end of a file????
i need this because i am loading a file to sybase and i have problems with the last record
thanks for your help (5 Replies)
I used following to add * at the end of the line in file1.
It adds * at the end but has a space before it for some lines but some other lines it adds exactly after the last character.
How do I take out the space ?
sed 's/$/*/' file1 > file2
example:
contents of file1 :
... (2 Replies)
hi all
i have 32 lines in file. the length of each line is 82 , i want that in the end of each line , means in postion 83-84 to put two characters 0d(=\015), 0a(=\012)
i want that the 0d will be in postion 83
and the 0a will be in postion 84
in each line of the file
how shall i do it ?
... (7 Replies)
Hi All
I have a file which conatins record.the length of every records is 47.
problem : in the end of record i don't have a "\015" character.
i want to add this "\015" charcter in the end of every record.
the file contains something like 700 records.
i've tried with sed command - nothing.
... (8 Replies)
Hi All,
I have a file as below:
cat myfile
abcdef
NA
rwer
tyujkl
na
I wish to add the text ".txt" at the end of all lines except the lines starting with NA or na.
I know i can add text at the end of line using following command but I am not sure how to valiate the condition. (14 Replies)
I need to remove new line character from end of file.
Suppose here are content.
a|b|c|d|r
a|b|c|d|r
a|b|c|d|r
<new line>
that means file contains 4 lines but data is there in 3 lines.
so I want that only 3 lines should be there in file.
Please help (20 Replies)
Hai,
I have got a small requirement in my script. and i am using bash shell. I need to add a dot (.) for some particular line in a file. Say for example,
$Cat rmfile
1 This is line1
2 This is line2
3 This is line3
O/p should be :
$Cat rmfile
1 This is line1
2 This is line2. #... (2 Replies)
Discussion started by: Sivajee
2 Replies
LEARN ABOUT FREEBSD
copymsg
copymsg(9F) Kernel Functions for Drivers copymsg(9F)NAME
copymsg - copy a message
SYNOPSIS
#include <sys/stream.h>
mblk_t *copymsg(mblk_t *mp);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
mp Pointer to the message to be copied.
DESCRIPTION
copymsg() forms a new message by allocating new message blocks, and copying the contents of the message referred to by mp (using the
copyb(9F) function). It returns a pointer to the new message.
RETURN VALUES
If the copy is successful, copymsg() returns a pointer to the new message. Otherwise, it returns a NULL pointer.
CONTEXT
copymsg() can be called from user or interrupt context.
EXAMPLES
Example 1: : Using copymsg
The routine lctouc() converts all the lowercase ASCII characters in the message to uppercase. If the reference count is greater than one
(line 8), then the message is shared, and must be copied before changing the contents of the data buffer. If the call to the copymsg()
function fails (line 9), return NULL (line 10), otherwise, free the original message (line 11). If the reference count was equal to 1, the
message can be modified. For each character (line 16) in each message block (line 15), if it is a lowercase letter, convert it to an upper-
case letter (line 18). A pointer to the converted message is returned (line 21).
1 mblk_t *lctouc(mp)
2 mblk_t *mp;
3 {
4 mblk_t *cmp;
5 mblk_t *tmp;
6 unsigned char *cp;
7
8 if (mp->b_datap->db_ref > 1) {
9 if ((cmp = copymsg(mp)) == NULL)
10 return (NULL);
11 freemsg(mp);
12 } else {
13 cmp = mp;
14 }
15 for (tmp = cmp; tmp; tmp = tmp->b_cont) {
16 for (cp = tmp->b_rptr; cp < tmp->b_wptr; cp++) {
17 if ((*cp <= 'z') && (*cp >= 'a'))
18 *cp -= 0x20;
19 }
20 }
21 return(cmp);
22 }
SEE ALSO allocb(9F), copyb(9F), msgb(9S)
Writing Device Drivers
STREAMS Programming Guide
SunOS 5.10 27 Jun 1995 copymsg(9F)