Как пронумеровать все строки в файле.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2011-10-18 0:42:44
Как пронумеровать все строки в файле.
Имеется файл. нужно промумеровать в нем все строки и сохранить. Строк много, в ручную никак. Формат такой
ДО
строка1
строка2
строка3
ПОСЛЕ
1 строка1
2 строка2
3 строка3
на выводе получается нумеровать командой: sed = File.txt | sed 'N;s/\n/ /', но а в самом файле никак не получается
ps: googe не рекомендовать
ДО
строка1
строка2
строка3
ПОСЛЕ
1 строка1
2 строка2
3 строка3
на выводе получается нумеровать командой: sed = File.txt | sed 'N;s/\n/ /', но а в самом файле никак не получается
ps: googe не рекомендовать
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Electronik
- капитан
- Сообщения: 1593
- Зарегистрирован: 2008-11-15 17:32:56
- Откуда: Минск
- Контактная информация:
Re: Как пронумеровать все строки в файле.
Код: Выделить всё
sed = File.txt | sed 'N;s/\n/ /' >> new_file.txt
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог
Блог
- gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
- Контактная информация:
Re: Как пронумеровать все строки в файле.
Код: Выделить всё
cat -n file.txt > newfile.txt
Да шо ему сделается...
-
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2011-10-18 0:42:44
Re: Как пронумеровать все строки в файле.
в том и дело, что новый файл создавать нельзя.
все изменения должны быть в исходном файле.
все изменения должны быть в исходном файле.
- gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
- Контактная информация:
Re: Как пронумеровать все строки в файле.
а если так ?
Код: Выделить всё
sed = File.txt | sed -i 'N;s/\n/ /'
Да шо ему сделается...
- Electronik
- капитан
- Сообщения: 1593
- Зарегистрирован: 2008-11-15 17:32:56
- Откуда: Минск
- Контактная информация:
Re: Как пронумеровать все строки в файле.
Код: Выделить всё
mv File.txt tmp_File.txt && sed = tmp_File | sed 'N;s/\n/ /' >> File.txt
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог
Блог
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Как пронумеровать все строки в файле.
эээ
Код: Выделить всё
cat -n _FILE_ > _FILE_
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
-
- проходил мимо
Re: Как пронумеровать все строки в файле.
КАК ТО НЕ КОШЕРНО СОЗДАВАТЬ ВРЕМЕНЫЙ/ПРОМЕЖУТОЧНЫЙ ФАЙЛ когда он весит пару гигов...... поэтому и надо сделать все в исходном.
-
- проходил мимо
Re: Как пронумеровать все строки в файле.
как нибудь так
var=1
cat file.txt |while read line; do sed -i 's/$line/$var $line/g' file.txt ; var=$(($var+1)); done;
так не работает
а так совсем не то делает
var=1
cat file.txt |while read line; do sed -i 's/^/$var/' file.txt ; var=$(($var+1)); done;
var=1
cat file.txt |while read line; do sed -i 's/$line/$var $line/g' file.txt ; var=$(($var+1)); done;
так не работает
а так совсем не то делает
var=1
cat file.txt |while read line; do sed -i 's/^/$var/' file.txt ; var=$(($var+1)); done;
- Electronik
- капитан
- Сообщения: 1593
- Зарегистрирован: 2008-11-15 17:32:56
- Откуда: Минск
- Контактная информация:
Re: Как пронумеровать все строки в файле.
а можно узнать с какой целью вы хотите нумеровать строки в таком большом файле?
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог
Блог
- Morty
- ст. лейтенант
- Сообщения: 1370
- Зарегистрирован: 2007-07-17 23:25:12
Re: Как пронумеровать все строки в файле.
в vi(vim)e открой
все пронумеровано ))
Код: Выделить всё
:set number
-
- проходил мимо
Re: Как пронумеровать все строки в файле.
спасибо за пример. но это аналогично cat -n - не подходит.надо что бы в файле пронумеровалось. не создавая копию\временный файл.
- gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
- Контактная информация:
Re: Как пронумеровать все строки в файле.
простите, а чем sed -i не устраивает ? у меня на ходу заменяет и пишет в файл. У Вас не так ?
Да шо ему сделается...
-
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
- Контактная информация:
Re: Как пронумеровать все строки в файле.
У меня sed -i не работает... может кто просветит что не так?
Если нельзя явно создавать временный файл, может вычитать весь файл в переменную, а потом эту переменную записать в исходный файл?
Не знаю, правда, есть ли какие ограничения на размер переменной.
Код: Выделить всё
sed = vhod | sed -i 'N;s/\n/ /'
sed: -I or -i may not be used with stdin
Код: Выделить всё
# uname -a
FreeBSD 8.2-RELEASE
Код: Выделить всё
temp="`cat -n vhod`"
echo "${temp}" > vhod
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
-
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
- Контактная информация:
Re: Как пронумеровать все строки в файле.
С файлом 145Мб отработало, с 1221Mб - болтозавр - Out of space
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
-
- проходил мимо
Re: Как пронумеровать все строки в файле.
Ключик -i - это GNU-расширение sed'а и на большенстве xBSD систем такой трюк не прокатит.
Использовать его (ключ -i) на файле весом в гиг - тоже плохая затея, так как файл храниться байтиками, а не строками и после модификации строку нельзя писать сразу назад файл: строка становиться больше на несколько байт и её записть повлечёт затирание начала следующей строки. Так что sed сам будет вынужден создать временный файл или делать все операции в памяти (предварительно затянув туда весь файл или храня весь результат в памяти).
Так что единственный доступный вариант - это использование временного файла. И вы будете чувствовать себя сухо и комфортно.
Использовать его (ключ -i) на файле весом в гиг - тоже плохая затея, так как файл храниться байтиками, а не строками и после модификации строку нельзя писать сразу назад файл: строка становиться больше на несколько байт и её записть повлечёт затирание начала следующей строки. Так что sed сам будет вынужден создать временный файл или делать все операции в памяти (предварительно затянув туда весь файл или храня весь результат в памяти).
Так что единственный доступный вариант - это использование временного файла. И вы будете чувствовать себя сухо и комфортно.
- manefesto
- Группенфюррер
- Сообщения: 6934
- Зарегистрирован: 2007-07-20 8:27:30
- Откуда: Пермь
- Контактная информация:
Re: Как пронумеровать все строки в файле.
sed'ом нельзя в онлайне редактировать, только через временный
-
- проходил мимо
Re: Как пронумеровать все строки в файле.
Код: Выделить всё
nl test.txt