1 / 1 / 2
Регистрация: 13.10.2013
Сообщений: 91
1

Поменять местами первую и последнюю строку файла

19.11.2016, 15:35. Показов 3883. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С помощью команды awk поменять местами первую и последнюю строку в файле
Bash
1
2
3
4
5
6
7
8
9
10
11
BEGIN { nlines=0; } /* nlines - счетчик строк в файле */
END {
for (i=1; i<=nlines; i++)
{
if (i==1) print buf[nlines]; 
else if (i==nlines) print buf[1];
else print buf[i];
}}
{
buf[++nlines]=$0; /* прочитанные строки записываются в буфер */
}
Подскажите пожалуйста в чем ошибка.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2016, 15:35
Ответы с готовыми решениями:

Поменять местами первую и последнюю строки
Поменять местами первую и последнюю строки, Linux (Unix) запрос в одну строку, пыталась ничего не...

Поменять местами последнюю и первую строку файла
Задача - поменять местами последнюю и первую строку, вот начало кода: #include &lt;stdio.h&gt;...

Поменять местами первую и последнюю строку матрицы
Доброй день! Необходимо сгенерировать N*M (N, M задаются с клавиатуры) Вывести массив на экран...

Поменять местами первую и последнюю строку матрицы
Поменяйте местами первую и последнюю строки целочисленного массива А, если n≠m и вывести...

8
Эксперт NIX
2793 / 2036 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
19.11.2016, 16:49 2
Лучший ответ Сообщение было отмечено Aer_rus как решение

Решение

Bash
1
2
3
4
5
6
END {
print buf[nlines]
for (i=2; i<nlines; i++)
    {print buf[i]}
print buf[1]
}
1
Эксперт NIX
3167 / 740 / 247
Регистрация: 28.06.2015
Сообщений: 1,522
Записей в блоге: 16
20.11.2016, 10:57 3
Bash
1
awk '{n[NR]=$0} END {print n[NR]; for (i=2; i<NR; i++) print n[i]; print n[1]}' text.txt
1
6578 / 1778 / 304
Регистрация: 10.12.2013
Сообщений: 6,267
21.11.2016, 10:45 4
зачем awk и sed, если есть vim
Bash
1
vim +m$ +-m0 +x text.txt
Добавлено через 2 часа 9 минут
или
Bash
1
vim +norm1ddGPGddggPZZ text.txt
2
Эксперт NIX
2793 / 2036 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
21.11.2016, 11:33 5
Цитата Сообщение от volodin661 Посмотреть сообщение
если есть vim
Тогда уже ed А чем sed не угодил?
Bash
1
sed -rz 's/([^\n]*\n)(.*\n)([^\n]*)/\3\2\1/' text.txt
1
Эксперт NIX
3167 / 740 / 247
Регистрация: 28.06.2015
Сообщений: 1,522
Записей в блоге: 16
21.11.2016, 13:51 6
Marinero, Я попробовала сэмулировать работу опции -z и подправила немного регулярку
Bash
1
sed -r '1!{x;G};h;$!{d;b};s/([^\n]+)(.*\n)([^\n]+)/\3\2\1/' doc.txt
Не подскажите почему не действуют якоря \` -начало буфера \' - конец буфера?
Предваряя одиночную кавычку обратным слэшем, sed не лишает ее специального значения.
0
Эксперт NIX
2793 / 2036 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
21.11.2016, 17:51 7
Цитата Сообщение от nezabudka Посмотреть сообщение
\' - конец буфера
не работает потому что Вы используете одинарную кавычку как обрамление скрипта.
Если убирать -z, то я бы cократил
Код
'$!{H;d;};G;s/\n(\n[^\n]*)(.*)/\2\1/'
1
Эксперт NIX
3167 / 740 / 247
Регистрация: 28.06.2015
Сообщений: 1,522
Записей в блоге: 16
22.11.2016, 12:44 8
Marinero, Нашла решение, вставляю якоря в hex-16
Bash
1
2
\x5c\x60 #начало буфера
\x5c\x27 #конец буфера
Добавлено через 7 минут
Нет, увы. Только так
Bash
1
's/patten/\`string'\''/'
Добавлено через 17 часов 20 минут
Извиняюсь еще раз, даже так
Bash
1
'N;0~2s/\`patten\npatten'"\'"'/string/'
Если сделать
Bash
1
2
echo \'
echo "\'"
Все станет понятно.

Добавлено через 6 минут
Хорошо подходит для вставки переменных
0
1 / 1 / 0
Регистрация: 19.05.2016
Сообщений: 5
14.04.2018, 16:56 9
А разве не бесконечный цикл получится? Ведь, если i=2, а nlines у нас не меняется, то когда из цикла мы выйдем?
Bash
1
2
3
4
5
6
END {
print buf[nlines]
for (i=2; i<nlines; i++)
    {print buf[i]}
print buf[1]
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2018, 16:56
Помогаю со студенческими работами здесь

Матрица. Поменять местами первую и последнюю строку.
Помогите решить задачу в среде программирования С++BUILDER6.0:Дана матрица A(4,4). Поменять местами...

Поменять местами первую строку и последнюю строку матрицы
Вот что я делал и хочу дальше в таком стиле делать , const n=3; var a:array of integer;...

В текстовом файле поменять местами первую и последнюю строку
В заданном текстовом файле поменять местами первую и последнюю строку. Результат вывести в другой...

Задан массив А. Поменять в нем местами первую и последнюю строку
Задан массив А. Поменять в нем местами первую и последнюю строку. Код &quot;написал&quot;, компилятор жутко...

Поменять местами первую и последнюю компоненту файла
Ребята, выручайте. Нужно построить типизированный файл данных, компонентами которого являются...

дана матрица.поменять местами первую и последнюю строку,а их элементы увеличить на 2
Дана матрица A(n,m). Поменять местами первую и последнюю строку, а каждый элемент этих строк...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru