простой способ дописать в каждую строчку txt файла часть его названия

ceylor

а есть какой-нить простой способ дописать в каждую строчку файла часть его названия, т.е. есть файл названия типа blablabla_ddmmyyyy
строчка1
строчка2
...

хотелось бы

строчка1#dd.mm.yyyy
строчка2#dd.mm.yyyy
...

спасибо!

uncle17

[каков вопрос, таков ответ]
есть
[/каков вопрос, таков ответ]

mkrec

сильно зависит от того, какие данные в этом файле и сколько этих файлов нужно обработать. Например, разово эта задача легко решается в комбинации блокнот+эксель. А вообще, мне кажется, смысла в ней нет, поскольку присобачивать к строке хвост, зависящий от имени файла, прекрасно можно на этапе выборки данных из файла.

ceylor

какой?

ceylor

дело в том, что их не мало прям скажем
где 80 по 10 метров ...

durka82

Любой текстовый редактор, который понимает шаблоны при замене (например с поддержкой регэкспов).
Но вот насчет времени обработки 80Мб файлов не скажу.
Но если надо только 1 раз.

ceylor

во-во 800 метров...

pilot

sed ?

durka82

Ну так памяти/свопа побольше, и это лишь вопрос времени.
Но вот действительно непонятно, нафига такое надо.

mkrec

тогда я бы писал на си. Обычным fgets'ом. Но повторю, задача странная, и мне кажется, стоит пересмотреть саму необходимость ее решения.

ceylor

?

ceylor

возможно даты дописывать и не стоит
просто наиболее простой путь загнать в базу импортнув из текстовика имхо

durka82

То есть это делается только для того, чтобы заполнить поле в БД, которое одинаково для всех записей?

Dasar

названия файлов обрезать в каком-нибудь TotalCommander-е
далее взять способ предложенный Thirteen и доработать

for /f %i in (%file) do @echo %i#%file>>result.txt

ceylor

ну да... для записей из определенного файла

ceylor

чет не выходит каменный цветок... сорри за тупеж

slonishka

ls | while read a; do cat $a | sed s/$/" # "$a/g; done;

durka82

А при импорте каждого файла задать значение этого поля не судьба?
В крайнем случае можно написать триггер на добавление, который это и будет делать ;)

apl13

awk '{print $0 "#" substr(FILENAME,11,2) "." substr(FILENAME,13,2) "." substr(FILENAME,15)}' blablabla_ddmmyyyy > named_blablabla_ddmmyyyy

apl13

Кстати, рекомендую формат yyyymmdd, ибо хронологический порядок будет совпадать с лексикографическим.

elenangel

если формат имен файлов строго фиксирован, то первое, что приходит в голову (не батфайл конечно, а на дельфи).
скомпиленное лежит здесь
 

program addtostr;

{$APPTYPE CONSOLE}

uses
SysUtils;

const
HelpStr = 'Using: addtostr inputfilename outputfilename';

var
filename,fileres:string;
addstr,s:string;
fin,fout:text;


begin
{ TODO -oUser -cConsole Main : Insert code here }
if(ParamCount <> 2) then begin
Writeln(HelpStr);
end else begin
filename := paramstr(1);
fileres := paramstr(2);

addstr := copy(filename,8,8);
addstr := '#'+addstr+'#';

Assign(fin,filename);
Assign(fout,fileres);
Reset(fin);
Rewrite(fout);

while not eof(fin) do begin
Readln(fin,s);
Writeln(fout,s+addstr);
end;

Close(fin);
Close(fout);
end;
end.

apl13

Жесть! Кто больше!

Fmouse

ждём решения на ассемблере!

Papazyan

ждём решения на ассемблере!

{x 0:(0:x\:"#",-8#$x}'&(f:!`:.)like"test_*"

Q покруче ссаного ассемблера.

AlexV769

ls | while read a; do sed -i.bak s/$/" # "$a/g $a; done;

я б так сделал.
Оставить комментарий
Имя или ник:
Комментарий: