Sponsored Content
Top Forums Shell Programming and Scripting Moving line up if line starts with + sign. Post 302804587 by hanson44 on Wednesday 8th of May 2013 11:59:33 PM
Old 05-09-2013
Code:
awk 'NR>1 && !/^\+/{print RS}1 END{print RS}' ORS= file1

Should be (using gawk anyway, did not test with other awk versions):
Code:
awk 'NR>1 && !/^\+/{print RS}{print} END{print RS}' ORS= file1

Code:
$ cat test.sh
echo input file:
cat file1
echo
echo original approach did not work:
awk '!/^\+/{ORS=FS}/^\+/{ORS=RS}1' file1
echo
echo
echo scrutinizer approach throws a syntax error:
awk 'NR>1 && !/^\+/{print RS}1 END{print RS}' ORS= file1
echo
echo scrutinizer approach modified a little works:
awk 'NR>1 && !/^\+/{print RS}{print} END{print RS}' ORS= file1
echo
echo yoda suggested change did not help:
awk '!/^\+/{ORS=""}/^\+/{ORS=RS}1' file1

Code:
$ ./test.sh
input file:
Line 1
+ Line 2
Line 3
+ Line 4
+ Line 5
Line 6
+ Line 7
+ Line 8
+ Line 9
Line 10
Line 11

original approach did not work:
Line 1 + Line 2
Line 3 + Line 4
+ Line 5
Line 6 + Line 7
+ Line 8
+ Line 9
Line 10 Line 11

scrutinizer approach throws a syntax error:
awk: cmd. line:1: NR>1 && !/^\+/{print RS}1 END{print RS}
awk: cmd. line:1:                           ^ syntax error

scrutinizer approach modified a little works:
Line 1+ Line 2
Line 3+ Line 4+ Line 5
Line 6+ Line 7+ Line 8+ Line 9
Line 10
Line 11

yoda suggested change did not help:
Line 1+ Line 2
Line 3+ Line 4
+ Line 5
Line 6+ Line 7
+ Line 8
+ Line 9
Line 10Line 11

This User Gave Thanks to hanson44 For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

moving to a specified line number

Hi Is there any command or a trick that can take me to a specifed line number in unix . Suppose i have a file with 2000 lines and i would like to go to line number 1899 and then print out the contents of the line. regards Hrishy (2 Replies)
Discussion started by: xiamin
2 Replies

2. Shell Programming and Scripting

How to read a line when it starts with spaces

Hi , I use read command to get the input text, When i try to get the line starting with spaces or ending with spaces it automatically truncates the spaces and displays the remaining content. Code i tried (UserInput.sh): #!/bin/bash echo -n "Enter some text > " read text echo "You... (3 Replies)
Discussion started by: PrakashChinna
3 Replies

3. HP-UX

Typing the @ sign creates new line.

Whenever I type the @ sign like for example when using a proxy ftp server, The system forces the cursor to jump to a new line. I know it has something to do with the terminal settings. How can I get this to stop and more importantly, how can I modify my profile to set this up whenever I login? ... (3 Replies)
Discussion started by: ricnetman
3 Replies

4. Shell Programming and Scripting

How to strip '$' sign on the line

echo "dddd$dddd"|sed 's/$//' will return dddd echo "dddd$ddd"|tr -d '$' will return dddd I need to replace it with any other character or just live a blank space instead Thank you! (8 Replies)
Discussion started by: zam
8 Replies

5. Shell Programming and Scripting

Moving items to a new line

Hi, Let's I have the following strings (md5): 07177edf8261d28c6a003e583fcbe38c 0717c0037b3a20fc0f0998e673f228d5 0717d611a5d24374628b98e17fd00977,0717d611a5d24374628b98e17fd00977 07189a18afdae558bb5aadfe602e4a91 0719e97d481c239667f38a3e166bed74 071af3225fe50a1fdbb42c43aac313cc... (4 Replies)
Discussion started by: talfiq
4 Replies

6. Shell Programming and Scripting

Moving a line to the end of the file

I have a file with different directories in it. I would need to move one line within the file to the end of the list. Also not there could be blank line in the middle of it. Example /vol/fs1 /vol/fs2 /vol/fs3 /vol/fs4 /vol/fs5 /vol/fs6 /vol/fs7 So I would need /vol/fs2... (3 Replies)
Discussion started by: bombcan
3 Replies

7. Shell Programming and Scripting

Merge multiple lines to one line when line starts with and ends with

example: comment Now_TB.table column errac is for error messages 1 - first 2 - second 3 -third ; in this example I need to be able to grab the comment as first word and ; as the last word and it might span a few lines. I need it to be put all in one line without line breaks so I can... (4 Replies)
Discussion started by: wambli
4 Replies

8. Shell Programming and Scripting

sed - How to replace right part of equal sign (=) on a line

Hello. Using a bash script , I have a variable name for the file I want to modify FILE_TO_EDIT="/etc/my_config_file"And I have a variable name for the parameter to change PARAMETER="fallback_node" PARAMETER_NEW_VALUE="http://my_server_name.com/new_path" A config file may contain : 1°)... (2 Replies)
Discussion started by: jcdole
2 Replies

9. Homework & Coursework Questions

When I run the script, the cursor starts on the wrong line?

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: It's a shell script using a looping logic, trap, tput, if, while. Most of the scripts in this book aren't written... (2 Replies)
Discussion started by: ckleinholz
2 Replies

10. UNIX for Beginners Questions & Answers

Get an output of lines in pattern 1st line then 10th line then 11th line then 20th line and so on.

Input file: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (6 Replies)
Discussion started by: Sagar Singh
6 Replies
mv(1)							      General Commands Manual							     mv(1)

Name
       mv - move or rename files

Syntax
       mv [-i] [-f] [-] file1 file2

       mv [-i] [-f] [-] file... directory

Description
       The command moves (changes the name of) file1 to file2.

       If  file2  already  exists,  it is removed before file1 is moved.  If file2 has a mode which forbids writing, prints the mode and reads the
       standard input to obtain a line.  If the line begins with y, the move takes place.  If it does not, exits.  For further information, see

       In the second form, one or more files (plain files or directories) are moved to the directory with their original file-names.

       The command refuses to move a file onto itself.

Options
       -		   Interprets all following arguments as file names to allow file names starting with a minus.

       -f		   Force. This option overrides any mode restrictions or the -i switch.

       -i		   Interactive mode.  If a move is to supersede an existing file, the system prompts youw with the name of the	file  fol-
			   lowed  by  a question mark.	If you type a string that begins with y, the move occurs.  If you type any other response,
			   the move does not occur.

Restrictions
       If file1 and file2 lie on different file systems, must copy the file and delete the original.  In this case the owner name becomes that	of
       the copying process and any linking relationship with other files is lost.

See Also
       cp(1), ln(1)

																	     mv(1)
All times are GMT -4. The time now is 11:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy