Sponsored Content
Full Discussion: Replace special characters
Top Forums Shell Programming and Scripting Replace special characters Post 302584120 by ratheeshjulk on Thursday 22nd of December 2011 08:18:55 PM
Old 12-22-2011
Replace special characters

I have a line ending with special character and 0
The special character is the field separator for this line
in VI mode the file will look like below, but while cat the special character wont display

i know the hexa code for the special character ^_ is \x1f and ascii code is
\0037,


Code:
000^_^_^_^_^_^_0.000000^_^_^_^_^_^_^_^_^_^_^_^_0^_0.000000^_^_^_^_0^_0^_^_^_0



I can filter these lines which is ending with ^_0 with the below command

Code:
grep `echo "\0037"`0$ filenam


Now my requirement is i want add one end delimiter to such lines.
simply i want replace the last ^_0with ^_0{}, where {} is the new sring i am going to add as an end delimeter


the whole file will look like this
Code:
30093354^_40^_1^_1^_615220181^_1324314123^_b0002
b00^_^_^_b0002
b0002/038513530400025^_2^_9^_3^_1324929600^_1^_1^_19.070000^_0.000000^_19.070000^_0.000000^_0.000000^_USD ^_1.000000^_USD ^_0^_1^_1^_1^_^_^_^_^_3^_^_2^_ ^_1324314123907^_^_^_^_0^_0.000000^_^_^_^_^_^_^_^_0^_0.000000^_^_^_^_0^_0^_^_^_0
68576101^_4^_1^_1^_628398181^_1323894124^_m1500
M15^_^_^_m1500
M1500/038513480015005^_2^_9^_3^_1324501200^_1^_1^_31.410000^_0.000000^_31.410000^_0.000000^_0.000000^_USD ^_1.000000^_USD ^_0^_0^_0^_0^_^_^_^_56^_3^_^_20^_ ^_1323894124565^_^_^_^_0^_0.000.000000^_^_^_^_^_^_^_^_^_^_^_^_0^_0.000000^_^_0^_0^_0^_0^_^_^_0

>

out put should be something like this

Code:
30093354^_40^_1^_1^_615220181^_1324314123^_b0002
b00^_^_^_b0002
b0002/038513530400025^_2^_9^_3^_1324929600^_1^_1^_19.070000^_0.000000^_19.070000^_0.000000^_0.000000^_USD ^_1.000000^_USD ^_0^_1^_1^_1^_^_^_^_^_3^_^_2^_ ^_1324314123907^_^_^_^_0^_0.000000^_^_^_^_^_^_^_^_0^_0.000000^_^_^_^_0^_0^_^_^_0{}
68576101^_4^_1^_1^_628398181^_1323894124^_m1500
M15^_^_^_m1500
M1500/038513480015005^_2^_9^_3^_1324501200^_1^_1^_31.410000^_0.000000^_31.410000^_0.000000^_0.000000^_USD ^_1.000000^_USD ^_0^_0^_0^_0^_^_^_^_56^_3^_^_20^_ ^_1323894124565^_^_^_^_0^_0.000.000000^_^_^_^_^_^_^_^_^_^_^_^_0^_0.000000^_^_0^_0^_0^_0^_^_^_0{}

>

---------- Post updated at 08:18 PM ---------- Previous update was at 08:21 AM ----------

I solved the issue, But for some reason i could'nt use the desired string '{}' but managed with 'Ç'

Code:
perl -i -ne 's;(\x1F)0\n;\x1F0Ç\n;g;print;' file

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Replace Special characters in a file

Hi, I have a data like this in a file, 402003279034002000100147626030003300010000000000002000029000000 ær^M^\MÍW^H I need to replace those special char to some other char like # or $ Is there any ways to do it... I tried commands tr,sed and many but it was not able to replace because... (1 Reply)
Discussion started by: solai
1 Replies

2. UNIX for Dummies Questions & Answers

Find and replace special characters in a file

HI All I need a shell script ehich removes all special characters from file and converts the file to UTF-* format Specail characters to be removed must be configurable. strIllegal = @"?/><,:;""'{|\\+=-)(*&^%$#@!~`"; Please help me in getting this script as my scripting skilla are... (2 Replies)
Discussion started by: sujithchandra
2 Replies

3. Shell Programming and Scripting

Using sed to replace special characters

Hi everyone I have file1 contains: '7832' ' 8765 6543 I want a sed command that will format as: '7832' , '8765' , '6543' I tried sed -e s/\'//g -e 's/^*//;s/*$//' file1 > file2 sed -e :a -e '$!N; s/\n/ /; ta' file2 which gives: 7832 8765 6543 I need some help to continue with... (5 Replies)
Discussion started by: nimo
5 Replies

4. Solaris

How to replace special characters in vi?

Hi , I want to replace the special characters in the file. For eg: cat abc 1234/4455/acb 234/k/lll/ 234`fs`fd I want to replace / and ` with the letter a and the output should like below. How to achieve this. 1234a4455aacb 234akallla 234afsafd (2 Replies)
Discussion started by: rogerben
2 Replies

5. Shell Programming and Scripting

Replace special characters with Escape characters?

i need to replace the any special characters with escape characters like below. test!=123-> test\!\=123 !@#$%^&*()-= to be replaced by \!\@\#\$\%\^\&\*\(\)\-\= (8 Replies)
Discussion started by: laknar
8 Replies

6. Shell Programming and Scripting

How to replace special characters?

Hi Unix Guru, I have an requirement for replace some specail characters in a file, my file came from mainframe. please see below example: when open it with vi 17896660|89059215|04/24/1998 00:00:00.000000| abc 123-453-1312^M<85>^M<85>|124557 if I run cat -v I got following:... (25 Replies)
Discussion started by: ken002
25 Replies

7. Shell Programming and Scripting

Replace special characters with backslash and character

Hi, I have a string wherein i need to replace special characters with backslash and that character. Ex: If my string is a=qwerty123@!, then the new string should be a_new=qwerty123\@\!\, Thanks (3 Replies)
Discussion started by: temp_user
3 Replies

8. Shell Programming and Scripting

Help to replace the string with special characters

{"name":"alR_pl-ENVIRONMENT_192_168_211_123_sDK_PROVISION_7","description":"aLR_pl-ENVIRONMENT_192_168_211_123_sDK_PROVISION_7","json_class":"Chef::Role","default_attributes":{},"override_attributes":{"yoapp":{"jboss":"5.1.0","port":"2243","warname":"soap","datacenter":"alR","ip":"192.168.211.123","... (3 Replies)
Discussion started by: nikhil jain
3 Replies

9. UNIX for Advanced & Expert Users

How to replace special characters?

Hi Team, I have data like this. |*|.5|*|0.2|*|A.B|*| Would like to add zero (0) before the decimal point where there is no zero as |*|0.5|*|0.2|*|A.B|*| How to replace |*|. with |*|0. I tried below command which didn't work echo '|*|.5|*|0.2|*|A.B|*' | sed... (4 Replies)
Discussion started by: Ravi.K
4 Replies

10. UNIX for Beginners Questions & Answers

Replace Pattern with another that has Special Characters

Hello Team, Any help would be much appreciated for the below scenario: I have a sed command below where I am trying to replace the contents of 'old_pkey' variable with 'new_pkey' variable in a Soap request file (delete_request.txt). This works fine for regular string values, but this new_pkey... (8 Replies)
Discussion started by: ChicagoBlues
8 Replies
MKNOD(2)							System Calls Manual							  MKNOD(2)

NAME
mknod - make a special file SYNOPSIS
mknod(path, mode, dev) char *path; int mode, dev; DESCRIPTION
Mknod creates a new file whose name is path. The mode of the new file (including special file bits) is initialized from mode. (The pro- tection part of the mode is modified by the process's mode mask (see umask(2))). The first block pointer of the i-node is initialized from dev and is used to specify which device the special file refers to. If mode indicates a block or character special file, dev is a configuration dependent specification of a character or block I/O device. If mode does not indicate a block special or character special device, dev is ignored. Mknod may be invoked only by the super-user. RETURN VALUE
Upon successful completion a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error. ERRORS
Mknod will fail and the file mode will be unchanged if: [ENOTDIR] A component of the path prefix is not a directory. [EINVAL] The pathname contains a character with the high-order bit set. [ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters. [ENOENT] A component of the path prefix does not exist. [EACCES] Search permission is denied for a component of the path prefix. [ELOOP] Too many symbolic links were encountered in translating the pathname. [EPERM] The process's effective user ID is not super-user. [EPERM] The pathname contains a character with the high-order bit set. [EIO] An I/O error occurred while making the directory entry or allocating the inode. [ENOSPC] The directory in which the entry for the new node is being placed cannot be extended because there is no space left on the file system containing the directory. [ENOSPC] There are no free inodes on the file system on which the node is being created. [EDQUOT] The directory in which the entry for the new node is being placed cannot be extended because the user's quota of disk blocks on the file system containing the directory has been exhausted. [EDQUOT] The user's quota of inodes on the file system on which the node is being created has been exhausted. [EROFS] The named file resides on a read-only file system. [EEXIST] The named file exists. [EFAULT] Path points outside the process's allocated address space. SEE ALSO
chmod(2), stat(2), umask(2) 4th Berkeley Distribution May 23, 1986 MKNOD(2)
All times are GMT -4. The time now is 06:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy