LINUX.ORG.RU

Вопрос по Shell


0

0

Доброе время суток! Нужно написать программу которая в заданном текстовом файле переносит третью от конца строчку в начало файла. Заранее спасибо.

Re: Вопрос по Shell

tail -n 3 your_file_name | head -1 > tmp_file

head -n $[`cat your_file_name | wc -l`-3] your_file_name >> tmp_file

tail -n 2 your_file_name >> tmp_file

cat tmp_file > your_file_name

Ну что-то типа такого :)) Только при условии ньюлайна в конце файла :)

andrey85 ()

Re: Вопрос по Shell

tail -3 $1 | head -1 > $1.new
head -$(($(wc -l $1 | cut -f1 -d' ') - 3)) $1 >> $1.new
tail -2 $1 >> $1.new

пионэр...

val-amart ★★★★★ ()
Ответ на: Re: Вопрос по Shell от val-amart

Re: Вопрос по Shell

если нужны результаты в том же файле, что и входной, добавь
mv $1.new $1
по вкусу

val-amart ★★★★★ ()

Re: Вопрос по Shell

Благодарю! Спасибо огромное всё работает) А пионер-это да) Ща шел тока первый семестр идёт)

pchelzdec ()

Re: Вопрос по Shell

$ cat zz
line 1 
line 2
line 3
line 4
line 5
line 6
$ printf '$-2 m 0\nw\n' | ed zz 2>/dev/null
$ cat zz 
line 4
line 1 
line 2
line 3
line 5
line 6

учись, студент :)

bigbit ★★★★★ ()

Re: Вопрос по Shell

в каких это универах и на каких _спицальнастях_ преподают шелл? просто интересно.

awesome ()
Ответ на: Re: Вопрос по Shell от awesome

Re: Вопрос по Shell

немного пеара: Компьютерная Академия ШАГ, для программистов и админов. но мы не университет

val-amart ★★★★★ ()
Ответ на: Re: Вопрос по Shell от bigbit

Re: Вопрос по Shell

> $ printf '$-2 m 0\nw\n' | ed zz 2>/dev/null

красиво)...

менее эффективный (видимо, второй tac будет медленным), just for fun:

tac <file>|sed '3{h;d};$G'|tac

grimp3ur ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.