Copy/Paste in Vi editor


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Copy/Paste in Vi editor
# 1  
Old 12-14-2009
Copy/Paste in Vi editor

Dear All,
I have a file containing 12 lines.
First 3 lines have 9 values and the remaining 9 lines with no values. I was trying to copy and paste these 9 values of the first 3 lines into last 9 lines simultaneously as A=1.491331, B=1.539000 ..... but I don't know how to cope with this problem in Vi editor. To copy and paste whole lines in Vi editor is pretty easy but a particular a set of values in a line is difficult for me to copy and paste. I have big file with many values to deal with but I am providing following few lines. What are the commands to put the 9 values into their respective variables e.g. A= , B= ...?
Thanks in advance.

1.491331 122.168 1.143
1.539000 105.633 -119.191
1.235793 121.142 -67.765
A=
B=
C=
D=
E=
F=
G=
H=
I=
# 2  
Old 12-14-2009
It is not easy to do in vi, but you can make use of tools such as awk.

Try:

Code:
cat file | xargs -n1 | awk '!/[A-Z]/ {A[++i]=$0; } /[A-Z]/ { print $0 A[++j] }'  >out_file

or

Code:
awk 'NF>1 { for (x=1;x<=NF;x++) A[++i]=$x } /[A-Z]/ { print $0 A[++j] }' < file >out_file

Output:
Code:
cat out_file
A=1.491331
B=122.168
C=1.143
D=1.539000
E=105.633
F=-119.191
G=1.235793
H=121.142
I=-67.765

[/QUOTE]

Last edited by dennis.jacob; 12-14-2009 at 01:59 PM.. Reason: Modified for better readability
# 3  
Old 12-14-2009
You can use the yw command to yank words so for a number like 1.143 you would use
3yw since vi see this as 3 words "1" "." "143". Then go to where you want to paste it and just use the paste command "p".

For a signed number like -119.191 you would use 4yw.
# 4  
Old 12-14-2009
nerd is correct. A "word" for vi is some sequence of characters separated by certain separator characters (or the end of the line/file). Usual separators are: any whitespace, ".", "-", etc. (this is even configurable in the file "~/.exrc"). A single separator character also counts as "word" in this respect.

To put this in the undying prose of the "IBM Manual of Data Processing" (ca. 1975)

A word is a sequence of non-blank characters separated by blanks.

It is possible to use ONLY whitespace as separator characters by using "W" (uppercase W) instead of "w". Hence, to put "-1.43" to the yank buffer by the "y" command you could either use "4yw" or "yW". The first one will copy the next 4 "words" ("-", "1", ".", "43"), the latter will copy one "Word", which is everything up to the next blank/line end.

Whatever you use, move the cursor to the line you want to insert text at an press "p" to paste it after the cursor position or "P" to paste it before the cursor position.

I hope this helps.

bakunin
# 5  
Old 12-15-2009
Copy/Paste in Vi editor

Thanks to all, but problem is that I have more than 40 values to copy and paste and its really very time consuming. Is it possible to copy and paste all the values simultaneously by using one command line?
# 6  
Old 12-15-2009
you can use ULTRA-EDIT :
it connects using FTP to your server,
you click-click on the file and it comes to the PC,
you edit it, then "save" and there you are - better than VI !
# 7  
Old 12-15-2009
Grab line numbers, for beginning and ending lines, use
Code:
:set nu

within vi.

Code:
1 ant bat cat
2 dog emu fox
3 gnu hen ibis

Then type:
Code:
:1,3!tr ' ' '\012'

This puts everything on its own line.
From there, you'll just have to hand edit your variable assignments.

Unless someone else can help some more?
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Copy/paste in vi editor

Hello guys, I am trying to copy a line in vi editor and paste it with below commands but paste command is not working and instead of paste action prints the p character!! I should also mention that the server is Solaris... 1) crontab -e 2) j to move down 3) yy to copy the line 4) o to... (4 Replies)
Discussion started by: Newman
4 Replies

2. Shell Programming and Scripting

Copy n paste n times

I have one mainframe copy book where I want to copy n times depend on occurs which mention below. Example: Below highlighted row mention “occurs 2 times” so I need to copy 2 times till next label 10. C14992 10 FILLER PIC X(2835). 01 ... (7 Replies)
Discussion started by: srivalli
7 Replies

3. Shell Programming and Scripting

Copy and paste data

I need to copy from specified lines and paste the data into several other lines. XX123450008 xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x XX123451895 xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x xx.x ...... XX123452012 xx.x xx.x xx.x xx.x xx.x xx.x xx.x... (13 Replies)
Discussion started by: ncwxpanther
13 Replies

4. Shell Programming and Scripting

Copy and Paste to a new document

Hello, I am quite new to shell scripting so don't know all the tools available. What I'm trying to do is open a file optimal.txt search for objectiveValue and copy the number in quotes next to it. e.g. ... solutionName="incumbent" solutionIndex="-1" objectiveValue="13246" ... (6 Replies)
Discussion started by: StephanR
6 Replies

5. UNIX for Dummies Questions & Answers

vi copy/paste problem

I'm having a problem copy/pasting from a txt file in windows to vi. What happens is I copy a chunk of text, go to the putty terminal, go into insert mode, and right click, and it will stop pasting at a random point and freeze up. Nothing I do gets out of it. This only happens on my account... (1 Reply)
Discussion started by: solidarity
1 Replies

6. Shell Programming and Scripting

sed copy paste

Hello, I have this path and file: /dir/dir/dir/dir/dir/dir/dir/dir/dir/THIS_SPOT/fle.txt I want to end up with: /dir/dir/dir/dir/dir/dir/dir/dir/dir/THIS_SPOT/fle.txtTHIS_SPOT Take the dir after the 10th slash, add a tab at the end and paste the dir it copied. Thanks (4 Replies)
Discussion started by: crowman
4 Replies

7. Shell Programming and Scripting

Search, copy and paste

Can i search in a file for more than one string at a time? And copy the next string after that and paste it in column style? Is it possible? Thanks! (4 Replies)
Discussion started by: kingpeejay
4 Replies

8. UNIX for Dummies Questions & Answers

vi editor prefixes lines with # upon paste

I've been away from Unix and the vi editor for a while, and now I'm using vi (actually vim) in a Cygwin bash shell. When I copy-and-paste code examples (I'm playing with perl now) any time I paste code with lines beginning with the # character, vi inserts a # character at the beginning of every... (2 Replies)
Discussion started by: greenmangroup
2 Replies

9. UNIX for Dummies Questions & Answers

cut, copy + paste

Hi all! How do I cut, copy and paste under unix??? (2 Replies)
Discussion started by: aitor314
2 Replies

10. UNIX Desktop Questions & Answers

Cut, Copy and Paste with X

One of the things that I have learned to take for granted in the Win32 world is the cut, copy and paste hotkeys of ^X, ^C and ^V. I use these keys all the time under Win32 to copy and paste information from one GUI into another GUI. My question is, does X have a similiar standard? ... (4 Replies)
Discussion started by: auswipe
4 Replies
Login or Register to Ask a Question