Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt" (http://forum.oszone.net/showthread.php?t=267345)

temphard 02-09-2013 22:13 2211726

Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt"
 
Здравствуйте.

Пожалуйста, помогите создать батник.

Необходимо, чтобы из файла "2.txt" вырезалось (удалялось) определенное количество первых строк и чтобы вырезанные строки копировались (вставлялись) в файл "1.txt"

Спасибо за помощь.

Foreigner 02-09-2013 22:50 2211749

temphard,
sed.exe:
Код:

@echo off

sed -n "1,3 p" 2.txt 1>>1.txt
sed "1,3 d" 2.txt 1>2.tmp
move 2.tmp 2.txt

Первые 3 строки

temphard 02-09-2013 23:15 2211760

Большое спасибо за быстрый ответ.
Попробовал ваш скрипт, да он работает, но есть какая-то ошибка.

@echo off

sed -n "1,3 p" 2.txt 1>>1.txt
sed "1,3 d" 2.txt 1>2.tmp (файл 2.tmp создается пустым и в последствии 2.txt оказывается пустым)
move 2.tmp 2.txt

Большое спасибо за помощь.

Foreigner 02-09-2013 23:33 2211770

Цитата:

Цитата temphard
файл 2.tmp создается пустым и в последствии 2.txt оказывается пустым »

У меня все нормально.. Может просто первые строки в 2.txt пустые?

temphard 02-09-2013 23:46 2211775

Большое Вам спасибо, добрый человек!
Вы были правы, все работает.
Благодаря Вам, открыл для себя понятие "sed"

Спасибо за помощь.

microb115 07-01-2014 22:06 2284437

Здравствуйте
Попробовал запускать и у меня создаются 2 пустых файла 2.txt и 1.txt,хотя изначально 2.txt имеет некий текст.
Можете подробней описать что и как?

Iska 08-01-2014 02:29 2284575

Цитата:

Цитата microb115
Попробовал запускать и у меня создаются 2 пустых файла 2.txt и 1.txt,хотя изначально 2.txt имеет некий текст. »

У меня — нет. Код работает корректно. Упакуйте Ваши файлы «1.txt» и «2.txt» в архив и прикрепите их к сообщению.

Цитата:

Цитата microb115
Можете подробней описать что и как? »

Что непонятного?

«sed -n "1,3 p" 2.txt 1>>1.txt»: из файла «2.txt» извлекаются строки с 1 по 3 и добавляются к файлу «1.txt».
«sed "1,3 d" 2.txt 1>2.tmp»: из файла «2.txt» отсекаются строки с 1 по 3, остальные записываются во временный файл «2.tmp».
«move 2.tmp 2.txt»: временный файл «2.tmp» переносится под именем «2.txt».

Sphinx114 08-01-2014 02:48 2284579

microb115, скачайте Binaries и Dependencies
Закиньте в c:\windows\system32 (или положите рядом с батником) 4 файла: sed.exe libiconv2.dll libintl3.dll regex2.dll

microb115 08-01-2014 20:14 2285038

я нашел в чем была проблема.Надо было, чтобы батник лежал в папке вместе с sed.exe и прочими библиотеками,которые находятся в С/program files.А я этого сразу и не знал.
Это обязательное условие??или можно как нибудь прописать чтобы батник был в другой папке?

Iska 08-01-2014 20:23 2285039

Цитата:

Цитата microb115
или можно как нибудь прописать чтобы батник был в другой папке? »

Нужно указать полный путь к «sed.exe».

microb115 08-01-2014 21:20 2285058

Цитата:

Цитата Iska
Нужно указать полный путь к «sed.exe». »

а не подскажете как это сделать?

Iska 09-01-2014 05:23 2285225

Цитата:

Цитата microb115
а не подскажете как это сделать? »

Для примера выше:
Цитата:

Цитата Foreigner
Код:

@echo off

sed -n "1,3 p" 2.txt 1>>1.txt
sed "1,3 d" 2.txt 1>2.tmp
move 2.tmp 2.txt

»

— например, файл «sed.exe» установлен по умолчальному пути в «C:\Program Files\GnuWin32\bin»:
Код:

@echo off

"%ProgramFiles%\GnuWin32\bin\sed.exe" -n "1,3 p" 2.txt 1>>1.txt
"%ProgramFiles%\GnuWin32\bin\sed.exe" "1,3 d" 2.txt 1>2.tmp
move 2.tmp 2.txt


microb115 10-01-2014 18:36 2286222

Iska, спасибо.Все работает.


Время: 02:50.

Время: 02:50.
© OSzone.net 2001-