Sponsored Content
Top Forums Shell Programming and Scripting Help with regular command creation for editor vi Post 302998750 by Don Cragun on Tuesday 6th of June 2017 05:14:22 PM
Old 06-06-2017
To rearrange the first five fields of all lines in a file named file that contain five or more <hyphen> separated fields and leave other lines unchanged, you could use:
Code:
sed 's/\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)/\3-\2-\1-\5-\4/' file

Note that BRE back references count fields starting at 1, not 0.

If you are in vi with file currently loaded into the editing buffer and want to make that change to all lines in the buffer that match that pattern, the command to type into vi would be:
Code:
:g/\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)/s//\3-\2-\1-\5-\4/

If this isn't what you want, you need to write a much clearer statement of your requirements, tell us what operating system you're using, what shell you're using, where these strings are located, where you want the results to be placed, etc.

Note, however, that the above code will NOT change "duck" to "duk" while it rearranges the fields. If you really want to do that, you'll need to further explain the logic used to determine which letters to drop from which fields while rearranging fields.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

vi editor - ex Command help

:1,10 s/yes/no/g this ex command will substitute yes with no everytime it is found within the first 10 lines of the file. :s/yes/no/g this ex command will substitute yes with no everytime it is found for the line where the cursor is on my question is how could this substitution be... (4 Replies)
Discussion started by: theDirtiest
4 Replies

2. UNIX for Dummies Questions & Answers

editor command

I want to copy lines say from 2-5 to line after 20 in vi editor. Can I achieve this in a single command in vi editor. Thanks. (2 Replies)
Discussion started by: tselvanin
2 Replies

3. UNIX for Dummies Questions & Answers

vim as command line editor

Here is my problem, I manage a SunOs 5.8 Server, vi is the default command line editor, I have a line on each users .kshrc profile as follows: export EDITOR=/bin/vi I want to use vim as the command line editor, the below line doesn't work export EDITOR=/bin/vim Thank you (1 Reply)
Discussion started by: tony3101
1 Replies

4. UNIX for Dummies Questions & Answers

Command to find out user creation date

Is there a Command to find out user creation date ? or any other possible ways to find the same. (6 Replies)
Discussion started by: Crazy_murli
6 Replies

5. UNIX for Dummies Questions & Answers

Search command on vi editor

Hi all, Here is an example, I would wan to search for all string consists of IMP but not IMP-00015. Values other than 00015 is fine, is there anyone knows how to do that? Thanks. (2 Replies)
Discussion started by: *Jess*
2 Replies

6. Shell Programming and Scripting

Easy ex editor command

I've this command in a script which edits the file ... bash$ cat temp_file.txt THREAD #2 2 Running bash$ (echo "s/THREAD #2/d"; echo 'wq') | ex -s temp_file.txt bash$ cat temp_file.txt THREAD #2 2 Running If i've more than 1 line it easily deletes the line, but if it is the last line... (3 Replies)
Discussion started by: prash184u
3 Replies

7. OS X (Apple)

How to get the file creation date with find command

Is it possible to find all files based on the date of creation? And if so, how? I've been looking at the find command but it seems that only modification times are used as an option. (1 Reply)
Discussion started by: Straitsfan
1 Replies

8. UNIX for Dummies Questions & Answers

Command to quit from vi editor

Hi Folks I have opened a log file in Vi editor vi abc.logPlease advise me how to finally quit from Vi editor, which command is there..! Is it :q<Enter> (1 Reply)
Discussion started by: KAREENA18
1 Replies

9. Shell Programming and Scripting

File creation using awk and gsub command

I have input file 04000912|100:|||||]|101:||]|creDate:1451876825000|1441324800000:]|1444003200000:]|1446595200000:]|1449187200000:]|1451865600000:] I have to get output as below ID|Re_Date|Re_Value|Re_date 04000912|100|40.0|44 04000912|100|50.0|55 04000912|100|60.0|66... (4 Replies)
Discussion started by: shabeena
4 Replies

10. UNIX for Beginners Questions & Answers

Accessing Isql command via VI editor

Hi Guru's, I'm new at Unix. I am tasked to monitor the filesystem utilization on OS level (Unix) and DB (Sybase) for multiple systems. I am thinking to use vi editor and make a file, execute that file and all the file systems I need to monitor will be be shown. My script inside vi goes in... (8 Replies)
Discussion started by: Xworks
8 Replies
VITMP(1)						      General Commands Manual							  VITMP(1)

NAME
vitmp - edit temporary files SYNOPSIS
vitmp [VIM options] FILE... DESCRIPTION
vitmp is a wrapper around the VIM editor which may be used to invoke the editor in a way that is guaranteed to be suitable for editing tem- porary files used with programs such as crontab(1) and edquota(8). The instance of the editor that is invoked is /bin/vi. In particular, it is guaranteed that the file, if edited, will be overwritten in place such that the modified contents may be read back via a previously obtained file descriptor. Invoking the editor via vitmp also makes sure that no additional editor temporary files are used. Please note that vitmp offers no crash recovery capabilities. If the editor crashes during the overwrite, data may be lost. HISTORY
vitmp first appeared in Openwall GNU/*/Linux 1.0. AUTHORS
Solar Designer <solar@owl.openwall.com> SEE ALSO
crontab(1), vi(1), vim(1), edquota(8) Openwall Project 25 April 2002 VITMP(1)
All times are GMT -4. The time now is 06:26 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy