Я пытаюсь использовать sed для поиска определенного «первичного» шаблона, который может существовать в нескольких строках, с каждым первичным шаблоном, сопровождаемым --unknown-- количеством «вторичных» шаблонов.
Строки, содержащие шаблон, начинаются с: test(header_name)
В этой же строке находится произвольное количество строк, следующих за ним.
Я хочу переместить эти строки в их собственные строки, так что каждой из них предшествует собственный test(header_name)
.
например Исходный файл (mytest.txt):
apples
test("Type1", "hat", "cat", "dog", "house");
bananas
oranges
test("Type2", "brown", "red", "green", "yellow", "purple", "orange");
Я хочу, чтобы это стало:
apples
test("Type1", "hat");
test("Type1", "cat");
test("Type1", "dog");
test("Type1", "house");
bananas
oranges
test("Type2", "brown");
test("Type2", "red");
test("Type2", "green");
test("Type2", "yellow");
test("Type2", "purple");
test("Type2", "orange");
Это было бы легко сделать, если бы мы знали количество строк в строке, но в этом случае оно не фиксировано.
Неуклюжий способ сделать это:
while ( a line exists that starts with 'test' and contains more than two args)
do
Keep the first and second args
Move the rest of that line to a new line and add 'test(header)' to the front
done
Но это отнимает много времени, особенно если есть сотни строк.
Есть идеи?