Вот озаботился сабжем. Помогите, с помощью чего можно сделать такую замену?
Может, sed поможет, или еще что?
Замена в файле 0х0А на 0х0D0A (как сделать?)
Модератор: Bizdelnick
-
VAVka
- Сообщения: 96
Замена в файле 0х0А на 0х0D0A
С уважением, VAVka (VAVka pagе)
NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
-
flook
- Сообщения: 585
- Статус: Просто flook
Re: Замена в файле 0х0А на 0х0D0A
Код: Выделить всё
cat file | sed -e 's/0x0A/0x0D0A/'оно?
В каждом из нас спит гений... и с каждым днем все крепче...
-
VAVka
- Сообщения: 96
Re: Замена в файле 0х0А на 0х0D0A
не, я имел ввиду замену символа конца строки (0x0A) на символы завершающий ноль - конец строки (0x0D0A).
С уважением, VAVka (VAVka pagе)
NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
-
nercus
- Сообщения: 150
Re: Замена в файле 0х0А на 0х0D0A
я так понял, 0x0A - это значение 1 байта, а не 4 символа?
тогда перевести в base-8 и использовать \o в sed:
0x0A == 012
0x0D == 015
запустить и удивиться "а почему оно не работает?".
а потом догадаться, что вопрос надо было ставить не "Замена в файле 0х0А на 0х0D0A, как сделать?" а что-то типа "Текстовые файлы Unix to dos"
nercus добавил в 17.06.2005 11:43
http://home.xnet.com/~efflandt/pub/dos2unix.pl
соответственно, unix2dos.pl будет выглядеть так:
либо еще проще:
тогда перевести в base-8 и использовать \o в sed:
0x0A == 012
0x0D == 015
Код: Выделить всё
cat file|sed 's!\o012!\o015\o012!g'запустить и удивиться "а почему оно не работает?".
а потом догадаться, что вопрос надо было ставить не "Замена в файле 0х0А на 0х0D0A, как сделать?" а что-то типа "Текстовые файлы Unix to dos"
nercus добавил в 17.06.2005 11:43
http://home.xnet.com/~efflandt/pub/dos2unix.pl
соответственно, unix2dos.pl будет выглядеть так:
Код: Выделить всё
#! /usr/bin/perl
# dos2unix.pl by David Efflandt <efflandt@xnet.com>
# Modification of script from "Learning perl" p.353
# O'Reilly & Associates, Inc.
#
# Run after transfering text files from DOS to UNIX system.
# Strips carriage returns from DOS files for use UNIX.
# Transfers file permissions to new file (except suid bit).
#
# Usage:\tdos2unix.pl FILELIST
# where FILELIST = one or more filenames
#
# If you edit this file in DOS you can run it on itself by typing:
# perl dos2unix.pl dos2unix.pl
#
# Modify variables below for other search and replace functions.
$find = "\n"; # find this
$sub = "\r\n"; # substitute with this
$rm_bak = 1; # remove old file after conversion: 0 = no, 1 = yes
while (<>) {
if ($ARGV ne $oldargv) {
($dev,$ino,$mode,$nlink,$uid,$gid) = stat($ARGV);
$backup = $ARGV . '.bak';
rename($ARGV, $backup);
open (ARGVOUT, ">$ARGV");
chmod $mode, $ARGV;
select(ARGVOUT);
$oldargv = $ARGV;
}
s/$find/$sub/;
} continue {
print;
if (eof) {
print STDOUT "Converted: $oldargv\n";
unlink $backup if $rm_bak;
}
}
select(STDOUT);либо еще проще:
Код: Выделить всё
sed -i 's!$!\r!' somefile2.6.14-gentoo-r5
kde-3.5.0 | openbox-3.2
Deep Purple | Rob Zombie | Led Zeppelin | ДДТ
kde-3.5.0 | openbox-3.2
Deep Purple | Rob Zombie | Led Zeppelin | ДДТ
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
-
VAVka
- Сообщения: 96
Re: Замена в файле 0х0А на 0х0D0A
nercus: Cовершенно верно. unix2dos. А для этого - "как заменить в файле 0х0А на 0х0D0A?"
Пмсм, вопрос поставлен точнее некуда: конкретика, мать ее так...
madskull: Cпасибо.
ЗЫ: madskull, почему бы Вам не написать что-нибудь, типа хау-ту или очерка на тему "Эффективное использование shell программирования", где коснуться sed, awk и регулярных выражений? Очень интересно и полезно было бы почитать в Вашей трактовке.
madskull: Cпасибо.
ЗЫ: madskull, почему бы Вам не написать что-нибудь, типа хау-ту или очерка на тему "Эффективное использование shell программирования", где коснуться sed, awk и регулярных выражений? Очень интересно и полезно было бы почитать в Вашей трактовке.
С уважением, VAVka (VAVka pagе)
NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Замена в файле 0х0А на 0х0D0A
(VAVka @ Понедельник, 20 Июня 2005, 2:16) писал(а):ЗЫ: madskull, почему бы Вам не написать что-нибудь, типа хау-ту или очерка на тему "Эффективное использование shell программирования", где коснуться sed, awk и регулярных выражений? Очень интересно и полезно было бы почитать в Вашей трактовке.
пишется:
здесь
http://unix.ginras.ru/apps/sh009.html
и здесь
http://madskull.narod.ru/tips/
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Замена в файле 0х0А на 0х0D0A
(VAVka @ Понедельник, 20 Июня 2005, 2:16) писал(а):nercus: Cовершенно верно. unix2dos. А для этого - "как заменить в файле 0х0А на 0х0D0A?"Пмсм, вопрос поставлен точнее некуда: конкретика, мать ее так...
madskull: Cпасибо.
ЗЫ: madskull, почему бы Вам не написать что-нибудь, типа хау-ту или очерка на тему "Эффективное использование shell программирования", где коснуться sed, awk и регулярных выражений? Очень интересно и полезно было бы почитать в Вашей трактовке.
Я вот alv'у обещал аж цикл статей про баш-программинг... да не выходит.
Самому выдумывать проблемы, чтобы их рассусоливать не получается, а брать что-то из ежедневно употребляемых конструкций не получается из-за того, что если выдернуть какие-то красивые на мой взгляд решения из контекста, то они теряют красоту и смысл.
Так что я пока кидаю в tips, а там видно будет.
Кроме того, есть Advanced Bash Scripting Guide.
(Я было начал писать про использование строковых операций, а оказалось, что там это уже довольно неплохо описано. Да и в man bash все есть)
ArchLinux / IceWM
-
VAVka
- Сообщения: 96
Re: Замена в файле 0х0А на 0х0D0A
Ага, посмотрел чипсы. Могу только лишь в очередной раз поблагодарить, что находите время делиться ценным опытом.
Сам же пока сяду за Advanced Bash Scripting Guide, вроде там неплохо описаны разные финты и в качестве начальной точки изучения sh-скриптинга.
Сам же пока сяду за Advanced Bash Scripting Guide, вроде там неплохо описаны разные финты и в качестве начальной точки изучения sh-скриптинга.
С уважением, VAVka (VAVka pagе)
NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}