Replace ^Z Character


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace ^Z Character
# 8  
Old 11-27-2012
CentOS 6.2
Code:
[root@centos62t scripts]# cat -v file1
A B C D^Z
A^@B C D
[root@centos62t scripts]# tr '\32' ' ' < file1
A B C D 
AB C D
[root@centos62t scripts]# cat -v <(tr '\32' ' ' < file1)
A B C D 
A^@B C D
[root@centos62t scripts]# od -b file1
0000000 101 040 102 040 103 040 104 032 012 101 000 102 040 103 040 104
0000020 012
0000021

# 9  
Old 11-27-2012
Red Hat:

Code:
od -bc file1
0000000 141 040 142 040 000 040 144 040 032 012
             a          b          \0         d         032  \n

cat file1 | tr '\32' ' ' > file2

od -bc file2
0000000 141 040 142 040 000 040 144 040 040 012
             a          b          \0         d               \n

IT WORKS !!! Only the 032 got translated to 040. The 000 (\0) remains the same.

Solaris:
Code:
od -bc file1
0000000 141 040 142 040 000 040 144 040 032 012
             a          b          \0         d         032  \n

cat file1 | tr '\32' ' ' > file2

od -bc file2
0000000 141 040 142 040 040 040 144 040 040 012
             a          b                   d               \n

IT DOES NOT WORK. The 000 (\0) also got replaced to 040. Hence the NULL is getting changed to a space, though i give only ^Z (32) in command.

Please let me know your thoughts.

Last edited by Scrutinizer; 11-27-2012 at 05:14 AM.. Reason: code tags
# 10  
Old 11-27-2012
On Solaris try /usr/xpg6/bin/tr or /usr/xpg4/bin/tr instead of tr
# 11  
Old 11-27-2012
It works for me without using xpg
Code:
# uname -a
SunOS sol10m 5.10 Generic_147441-01 i86pc i386 i86pc

# printf "A B C D\nE F G H^Z\nI\0J K L\n" > file1

# tr '\32' ' ' < file1 > file2

# diff file[12]                
2c2
< E F G H
---
> E F G H

The \0 might be getting replaced writing to the terminal, but not when writing to a file.
# 12  
Old 11-27-2012
Scott -
Is your ^Z actually ASCII 26?
# 13  
Old 11-27-2012
As shown in the previous od output, yes.
Code:
# od -b file1
0000000 101 040 102 040 103 040 104 012 105 040 106 040 107 040 110 032
0000020 012 111 112 040 113 040 114 012
0000030

The Null is the "issue" because the terminal doesn't display it. So it's not really an issue at all.
# 14  
Old 11-27-2012
On Solaris 10, Sparc, I get:
Code:
$ printf '\000' | tr '\032' ' ' | od -bc
0000000

Code:
$ printf '\000' | /usr/xpg4/bin/tr '\032' ' ' | od -bc
0000000 000
          \0
0000001


Last edited by Scrutinizer; 11-27-2012 at 06:42 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Replace certain character at specific place with related character

hello i have file with 100k records and each one has certain value that starts at 28th column and certain value that starts at 88th column e.g. 1st file <25>1234567 ..... <88> 8573785485 i have aditional file with values which are related to value that starts at 88th column of the... (1 Reply)
Discussion started by: dell1520
1 Replies

2. Shell Programming and Scripting

Find character and Replace character for given position

Hi, i want find the character '-' in a file from position 284-298, if it occurs i need to replace it with 'O ' for the position in the file. How to do that using SED command. thanks in advance, Sara (9 Replies)
Discussion started by: Sara183
9 Replies

3. UNIX for Dummies Questions & Answers

Replace a character with other

Hi All, I am having the below sample lin in the file. '''||V_D_BOOKING_TYPE||''' || ''¬'' || '''||V_D_SHARE_DELIV_FL||''' || ''¬'' || '''|| SUBSTR(V_D_FINANCIALDATATYPE,1,1) ||''' || ''¬'' || I need to replace ''¬'' with char(172). how do i do it. PLease help. sed 's/\''¬\''/chr(172)/g'... (3 Replies)
Discussion started by: abhi_123
3 Replies

4. Shell Programming and Scripting

Replace multiple occurances of same character with a single character.

Hi all, Greetings, I have the following scenario, The contents of main file are like : Unix|||||forum|||||||||||||||is||||||the||best so||||||be|||||on||||||||||||||||||||||||||||||||||||||||||||it And i need the output in the following form: Unix=forum=is=the=best so=be=on=it ... (3 Replies)
Discussion started by: dipanchandra
3 Replies

5. Shell Programming and Scripting

replace character with '

ive tried doing sed -i 's/h/\'/g' file.txt to replace h with ' but it doesnt work:confused:. Any ideas would be greatly appreciated. (3 Replies)
Discussion started by: lyman1216
3 Replies

6. Shell Programming and Scripting

In Sed how can I replace starting from the 7th character to the 15th character.

Hi All, Was wondering how I can do the following.... I have a String as follows "ACCTRL000005022RRWDKKEEDKDD...." This string can be in a file called tail.out or in a Variable called $VAR2 Now I have another variable called $VAR1="000004785" (9 bytes long), I need the content of... (5 Replies)
Discussion started by: mohullah
5 Replies

7. Shell Programming and Scripting

replace a character with another character

hi i have a string var=abc.ghi.jkl.mno.pqr now i need to replace .(dot) with _(underscore) the result should be like "arresult=abc_def_ghi_jkl_mno_pqr" Please help (8 Replies)
Discussion started by: satish@123
8 Replies

8. Shell Programming and Scripting

read in a file character by character - replace any unknown ASCII characters with spa

Can someone help me to write a script / command to read in a file, character by character, replace any unknown ASCII characters with space. then write out the file to a new filename/ Thanks! (1 Reply)
Discussion started by: raghav525
1 Replies

9. Shell Programming and Scripting

character replace

Hi, I have rows in a file, in each row string starts with "A200819097564". I want to replace the first character A with space.So the string looks like " 200819097564" I tried "tr -s "A2008" " 2008"" But did not get the required outpit. Thanks. (3 Replies)
Discussion started by: pradeep_script
3 Replies

10. UNIX for Dummies Questions & Answers

replace character with tr

Hi, i would like substitute the words containing the character "-" by any other. i've already tried the tr command: tr '\-' 'X', for example. But, this command doesn't work. It gave this: Original text: -i abcd-fe Result text: Xi abcdXfe Result desired: -i abcdXfe Thanks! ;) (3 Replies)
Discussion started by: tmxps
3 Replies
Login or Register to Ask a Question