Script to move the first line of a file to the end


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script to move the first line of a file to the end
# 15  
Old 12-31-2008
Quote:
Originally Posted by methyl
It is possible to write scripts which might work efficiently but are unintelligible to newbies. The previous post with "IFS" is a classic.

That line is the only way to guarantee reading an entire line. No one but a total newbie should have any problem with it.

There used to be a line command that did the same thing, but that is rarely found these days.
# 16  
Old 12-31-2008
Quote:
Originally Posted by cfajohnson
That line is the only way to guarantee reading an entire line. No one but a total newbie should have any problem with it.
I have to agree. I any case to know the purpose of, and have some concept of the effect of the manipulation of IFS is something that a new scripter would be well advised to learn. It can make some tasks truly trivial.
# 17  
Old 01-01-2009
When manipulating records with shell it is good practice to never put the record into a shell variable. We've had examples on this board where the data has changed because the record contained characters recognised by the shell (e.g. reverse solidus).
Obviously with known valid data there is no problem.
# 18  
Old 01-02-2009
sed -n '1 {
h
}
1 !{
$ !{
p
}
$ {
p
x
p
}
}' a.txt
# 19  
Old 01-02-2009
Hi.

Useful for small files, the simple editor, ed, has a move command:
Code:
#!/bin/bash -

# @(#) s1       Demonstrate editing file in place with script-able line editor, ed.

echo
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version "=o" $(_eat $0 $1) ed
set -o nounset
echo

FILE=${1-data1}

cp original $FILE
echo " Data file $FILE:"
cat $FILE

echo
echo " Messages from ed:"
ed $FILE <<EOF
1m$
w
q
EOF

echo
echo " Modified data file $FILE:"
cat $FILE

exit 0

Producing:
Code:
% ./s1

(Versions displayed with local utility "version")
Linux 2.6.11-x1
GNU bash
GNU ed version 0.2

 Data file data1:
/home/user/Music/file1.mp3
/home/user/Music/file2.mp3
/home/user/Music/file3.mp3
/home/user/Music/file5.txt
/home/user/Music/file7.wav
/home/user/Music/file11.ogg
/home/user/Music/file13.m4a

 Messages from ed:
191
191

 Modified data file data1:
/home/user/Music/file2.mp3
/home/user/Music/file3.mp3
/home/user/Music/file5.txt
/home/user/Music/file7.wav
/home/user/Music/file11.ogg
/home/user/Music/file13.m4a
/home/user/Music/file1.mp3

See man ed for details on the editing commands ... cheers, drl
# 20  
Old 01-07-2009
move command will do

eg : a.txt
a
b
c
d
e
f

execute this script :


vi - a.txt <<END
:mv 1 $
:x
<<END
# 21  
Old 01-07-2009
Hi, palanisvr.

Even after correcting the here document from:
Quote:
Originally Posted by palanisvr
vi - a.txt <<END
:mv 1 $
:x
<<END
to:
Quote:
Originally Posted by palanisvr
vi - a.txt <<END
:mv 1 $
:x
END
I cannot get your script to work correctly with the vi that I use. Please post all the the output from your script, and please use CODE tags to enhance readability. Thanks ... cheers, drl
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Printing string from last field of the nth line of file to start (or end) of each line (awk I think)

My file (the output of an experiment) starts off looking like this, _____________________________________________________________ Subjects incorporated to date: 001 Data file started on machine PKSHS260-05CP ********************************************************************** Subject 1,... (9 Replies)
Discussion started by: samonl
9 Replies

2. Shell Programming and Scripting

With script bash, read file line per line starting at the end

Hello, I'm works on Ubuntu server My goal : I would like to read file line per line, but i want to started at the end of file. Currently, I use instructions : while read line; do COMMAND done < /var/log/apache2/access.log But, the first line, i don't want this. The file is long... (5 Replies)
Discussion started by: Fuziion
5 Replies

3. Shell Programming and Scripting

Cannot execute/finish script because of last line syntax error: unexpected end of file/token `done'

first of all I thought the argument DONE is necessary for all scripts that have or begin with do statements which I have on my script, However, I still don't completely understand why I am receiving an error I tried adding another done argument statement but didn't do any good. I appreciate... (3 Replies)
Discussion started by: wolf@=NK
3 Replies

4. Shell Programming and Scripting

sed: how to move matched pattern to end of previous line

Hello, I'm new to this forum. I've been doing a lot of sed work lately and have found many useful tips on this forum. I've hit a roadblock in a project, though, and could really use some help. I have a text file with many lines like the following, i.e., some lines begin with a single word... (3 Replies)
Discussion started by: paroikoi
3 Replies

5. Shell Programming and Scripting

how to move a word to the end of file

Hey guys, I want move a specific word from the middle of the text and move it the end of the file, which means I want the word to be deleted from it's line and moved to the end of file. I know how to use sed for adding a word the end of file, but I don't know how to move words. tnx (2 Replies)
Discussion started by: Johanni
2 Replies

6. Shell Programming and Scripting

help needed with shell script to append to the end of a specific line in a file on multiple servers

Hi Folks, I was given a task to append three IP's at the end of a specific (and unique) line within a file on multiple servers. I was not able to do that with the help of a script. All I could was: for i in server1 server2 server3 server4 do ssh $i done I know 'sed' could be used to... (5 Replies)
Discussion started by: momin
5 Replies

7. Shell Programming and Scripting

awk script to move a line after the matched pattern line

I have the following text format in a file which lists the question first and then 5 choices after that the explanantion and finally the answer. 1.The amount of time it takes for most of a worker’s occupational knowledge and skills to become obsolete has been declining because of the... (2 Replies)
Discussion started by: nanchil_guy
2 Replies

8. Shell Programming and Scripting

Move a line to end of file

Can somebody help me with a script .... Read a file /etc/inittab find the string starting with rcml and move it entirely towards the end of file. rcml:2:once:/usr/sni/aix52/rc.ml > /dev/console 2>&1 I basically want to change the startup sequence. (2 Replies)
Discussion started by: imanuk2007
2 Replies

9. Shell Programming and Scripting

script to move two lines to the end of a file

My input file is multiline file and I am writing a script to search for a pattern and move the line with the pattern and the next line to the end of the file. Since I am trying to learn awk, I thought I would try it. My input looks like the following: D #testpoint 1 510.0 D #testpoint2 ... (5 Replies)
Discussion started by: banjo25
5 Replies

10. Shell Programming and Scripting

Help on shell script : syntax error at line 62: `end of file' unexpected

Hi All, I have written a korn script (code pasted below). It is giving the error while debugging "new.sh: syntax error at line 62: `end of file' unexpected". I have re-written the whole code in VI and explored all help related to this error on this Unix forum and tried it. Somehow, I could... (7 Replies)
Discussion started by: schandrakar1
7 Replies
Login or Register to Ask a Question