Quick VI question

Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Quick VI question
# 1  
Old 11-28-2001
Question Quick VI question

This "SHOULD" be a simple question,
but looking through several books has turned up nothing,
so I turn once again to the experts!!

How do you vi a file so that you can see special characters.

I believe my /etc/passwd file is being corrupted during an upgrade process, however the files "look" the same. I need to
vi /etc/passwd to see if there are any special characters being
thrown in.

# 2  
Old 11-28-2001
Sorry, vi can't do that. It's a text editor only.

od, xd, cat -b, vis may be utilities on your system that can do this.

If you think /etc/passwd might get stepped on, save a copy! Any updates to any file always change the times in the inode. Look at the times to see if any changes occurred. Also use cmp on /etc/passwd and your copy. It will report any differences and works well with any binary values. Also you can use cksum to detect changes.
# 3  
Old 11-28-2001
In command mode, go to the command prompt (the Smilie and type
set list

This should show non-printable characters in vi.
# 4  
Old 11-29-2001
Originally posted by wizard
In command mode, go to the command prompt (the :) and type
set list

This should show non-printable characters in vi.
Actually, with most versions of unix, ":set list" only affects white space. It causes tabs to show up as ^I and newlines to be marked with $.

The real problem is that some bytes could have values in the range of 128 to 255 and you may not have an 8 bit data path to your terminal. Depending on the stty settings, the MSB may be a parity bit rather than a data bit. Also not all terminals will display something for non-ascii characters. And a final problem is that, I think, vi balks at attempting to display nulls, although it will count them and display a count at startup time.
# 5  
Old 11-29-2001
I stand corrected. Perderabo is absolutely correct. I didn't have a UNIX box handy when I answered, so no man pages. I faintly remembered set list showed some type of control characters.
# 6  
Old 12-01-2001

Click here for a printable VI on-line reference.

BTW: Not sure, but perhaps you can use diff to compare the two files. I don't think (but not sure) you will get an exact match with diff if special or hidden chars are present.... perhaps someone could comment?

Also, you might consider playing round with stty and the flags for raw and cooked modes. I recall a few years ago using stty in raw mode to help find/print special chars.... not sure if we used vi or just cat to display.... somehow I recall playing with both stty and vi to find hidden chars in a file, but it has been many years ago....

stty man page here ...
# 7  
Old 02-20-2004
Try emacs. It will display nulls as ^@

It will even let you delete it with Ctrl-d (Control and letter d) to delete 1 character.

I'm not an emacs user but it comes in handy sometimes.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Quick question

When I have a file like this: 0084AF aj-123-a NAME Ajay NAME Kumar Engineer 015ED6 ck-345-c 020B25 ef-456-e 027458 pq-890-p NAME Peter NAME Salob Doctor 0318F0 xy-123-x NAME Xavier Arul NAME Yesu Supervisor 0344CA de-456-d where - The first NAME is followed by... (6 Replies)
Discussion started by: ajay41aj
6 Replies

2. UNIX for Dummies Questions & Answers

Quick question.

I'd like to list all userid's on the system that have a .bashrc file in their home directory with a command like "cat /etc/passwd | grep -f", however I'm not quite familiar with using grep. Any suggestions? (2 Replies)
Discussion started by: raidkridley
2 Replies

3. UNIX for Dummies Questions & Answers

Quick question

Hello all, Quick question from a fairly new to Unix developer. if then completedLogFile=$logfile.$(date +%Y%m%d-%H:%M:%S) mv $logfile $completedLogFile fi I understand that this portion of code is simply copying a tmp logfile to a completed logfile when a condition is true. The... (2 Replies)
Discussion started by: JohnnyBoy
2 Replies

4. UNIX for Dummies Questions & Answers

quick question

from command prompt I did grep two words on a same line for eg: grep abc | grep xyz and I got tht particular line, but I want to know when I vi that file how to directly search for that particular line? I appreciate if any one can provide answer, thanks in advance (2 Replies)
Discussion started by: pkolishetty
2 Replies

5. UNIX for Dummies Questions & Answers

Quick Question

Hi, I am new to UNIX, and am learning from this tutorial : http://www.ee.surrey.ac.uk/Teaching/Unix/index.html It keeps telling me to files downloaded from the internet (like .txt files) to the directory, and I dont know how to. How do I add .txt files to my directory? Thanks. (6 Replies)
Discussion started by: IAMTHEEVILBEAN
6 Replies

6. Shell Programming and Scripting

quick question

does anyone know what $? means? i echoed it on my box (running AIX Korn shell) and got 127 (2 Replies)
Discussion started by: penfold
2 Replies

7. UNIX for Dummies Questions & Answers

Another quick question

Hi guys sed -e "s/$<//g" the $< can allow me to assign an input value to the variable right? do the double quotes check the previous context? (1 Reply)
Discussion started by: hamoudzz
1 Replies

8. UNIX for Dummies Questions & Answers

Quick Question

Hello There! I am trying to write this SIMPLE script in Bourne Shell but I keep on getting syntax errors. Can you see what I am doing wrong? I've done this before but I don't see the difference. I am simply trying to take the day of the week from our system and when the teachers sign on I want... (7 Replies)
Discussion started by: catbad
7 Replies

9. Shell Programming and Scripting

A very quick question

Just a super quick question: how do you put a link in your php code. I want to make a link to something in /tmp directory. i.e. how do you put a href into php, I think it's done a bit differently. thanks john (1 Reply)
Discussion started by: jmg5
1 Replies

10. UNIX for Dummies Questions & Answers

Quick Question

I know in DOS, when you want to pull up your last/previous command, you hit the up/down arrows. How do you do that with UNIX? (3 Replies)
Discussion started by: Tracy Hunt
3 Replies
Login or Register to Ask a Question