У меня есть текстовый файл с таким рисунком:Замена шаблона в текстовый файл со случайным значением
\t (hello world)
Мне нужно заменить текст в скобках с уникальным значением (например, ob1, obj2 и т.д.) таким образом, что
\t (obj)
\t (obj)
\t (obj)
становится ...
\t (obj1)
\t (obj2)
\t (obj3)
Или что-нибудь еще, что является уникальным. Решение, использующее любой инструмент, работающий в cygwin, будет работать. Моя попытка с помощью Баша и СЭД, чтобы сделать это не удалась:
#!/bin/bash
x=1
for fl in myfile; do
cp $fl $fl.old
sed 's/\\t \(.*\)/\\t \("${x}"\)/g' $fl.old > $fl.new
x=$((x+1))
echo $x
done
+1 моя мысль была использовать Perl тоже. Одним из требований является уникальность, поэтому необходимо отслеживать используемые идентификаторы. Простое использование счетчика. –
Это простое изменение, см. Мое редактирование. – Benj
Это не похоже на изменение содержимого файла (без ошибок). Я не знаю perl, и даже я могу следить за тем, что здесь происходит. Я использую Cygwin. Есть ли какие-либо символы в этом заявлении, которые, возможно, должны избегать? – Scribblemacher