Показать полную графическую версию : [решено] Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt"
temphard
02-09-2013, 22:13
Здравствуйте.
Пожалуйста, помогите создать батник.
Необходимо, чтобы из файла "2.txt" вырезалось (удалялось) определенное количество первых строк и чтобы вырезанные строки копировались (вставлялись) в файл "1.txt"
Спасибо за помощь.
Foreigner
02-09-2013, 22:50
temphard,
sed.exe (http://gnuwin32.sourceforge.net/packages/sed.htm):
@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
Большое спасибо за быстрый ответ.
Попробовал ваш скрипт, да он работает, но есть какая-то ошибка.
@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
файл 2.tmp создается пустым и в последствии 2.txt оказывается пустым »
У меня все нормально.. Может просто первые строки в 2.txt пустые?
temphard
02-09-2013, 23:46
Большое Вам спасибо, добрый человек!
Вы были правы, все работает.
Благодаря Вам, открыл для себя понятие "sed"
Спасибо за помощь.
microb115
07-01-2014, 22:06
Здравствуйте
Попробовал запускать и у меня создаются 2 пустых файла 2.txt и 1.txt,хотя изначально 2.txt имеет некий текст.
Можете подробней описать что и как?
Попробовал запускать и у меня создаются 2 пустых файла 2.txt и 1.txt,хотя изначально 2.txt имеет некий текст. »
У меня — нет. Код работает корректно. Упакуйте Ваши файлы «1.txt» и «2.txt» в архив и прикрепите их к сообщению.
Можете подробней описать что и как? »
Что непонятного?
«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
microb115, скачайте Binaries (http://sourceforge.net/projects/gnuwin32/files//sed/4.2.1/sed-4.2.1-bin.zip/download) и Dependencies
(http://sourceforge.net/projects/gnuwin32/files//sed/4.2.1/sed-4.2.1-dep.zip/download)Закиньте в c:\windows\system32 (или положите рядом с батником) 4 файла: sed.exe libiconv2.dll libintl3.dll regex2.dll
microb115
08-01-2014, 20:14
я нашел в чем была проблема.Надо было, чтобы батник лежал в папке вместе с sed.exe и прочими библиотеками,которые находятся в С/program files.А я этого сразу и не знал.
Это обязательное условие??или можно как нибудь прописать чтобы батник был в другой папке?
или можно как нибудь прописать чтобы батник был в другой папке? »
Нужно указать полный путь к «sed.exe».
microb115
08-01-2014, 21:20
Нужно указать полный путь к «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 »
— например, файл «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
Iska, спасибо.Все работает.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.