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
erl_comment_scan(3erl)					     Erlang Module Definition					    erl_comment_scan(3erl)

NAME
erl_comment_scan - Functions for reading comment lines from Erlang source code. DESCRIPTION
Functions for reading comment lines from Erlang source code. DATA TYPES
comment() = {integer(), integer(), integer(), [string()]} : EXPORTS
file(FileName::filename() (see module file)) -> [Comment] Types Comment = {Line, Column, Indentation, Text} Line = integer() Column = integer() Indentation = integer() Text = [string()] Extracts comments from an Erlang source code file. Returns a list of entries representing multi-line comments, listed in order of increasing line-numbers. For each entry, Text is a list of strings representing the consecutive comment lines in top-down order; the strings contain all characters following (but not including) the first comment-introducing % character on the line, up to (but not including) the line-terminating newline. Furthermore, Line is the line number and Column the left column of the comment (i.e., the column of the comment-introducing % char- acter). Indent is the indentation (or padding), measured in character positions between the last non-whitespace character before the comment (or the left margin), and the left column of the comment. Line and Column are always positive integers, and Indentation is a nonnegative integer. Evaluation exits with reason {read, Reason} if a read error occurred, where Reason is an atom corresponding to a Posix error code; see the module file(3erl) for details. join_lines(Lines::[CommentLine]) -> [Comment] Types CommentLine = {Line, Column, Indent, string()} Line = integer() Column = integer() Indent = integer() Comment = {Line, Column, Indent, Text} Text = [string()] Joins individual comment lines into multi-line comments. The input is a list of entries representing individual comment lines, in order of decreasing line-numbers ; see scan_lines/1 for details. The result is a list of entries representing multi-line comments, still listed in order of decreasing line-numbers , but where for each entry, Text is a list of consecutive comment lines in order of increasing line-numbers (i.e., top-down). See also: scan_lines/1 . scan_lines(Text::string()) -> [CommentLine] Types CommentLine = {Line, Column, Indent, Text} Line = integer() Column = integer() Indent = integer() Text = string() Extracts individual comment lines from a source code string. Returns a list of comment lines found in the text, listed in order of decreasing line-numbers, i.e., the last comment line in the input is first in the resulting list. Text is a single string, contain- ing all characters following (but not including) the first comment-introducing % character on the line, up to (but not including) the line-terminating newline. For details on Line , Column and Indent , see file/1 . string(Text::string()) -> [Comment] Types Comment = {Line, Column, Indentation, Text} Line = integer() Column = integer() Indentation = integer() Text = [string()] Extracts comments from a string containing Erlang source code. Except for reading directly from a string, the behaviour is the same as for file/1 . See also: file/1 . AUTHORS
Richard Carlsson <richardc@it.uu.se > syntax_tools 1.6.7 erl_comment_scan(3erl)
All times are GMT -4. The time now is 09:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy