Мой XML-файл похож на это:
<price = "2.22"><instock = "1">
У меня должен быть он как этот:
<price = "2.22">
<instock = "1">
После каждого">" символ я должен поместить символ новой строки с awk или sed. Как я могу выполнить это?спасибо
Как KeithB заявил, существуют потенциальные проблемы, которые могут явиться результатом использования сырого подхода. Однако этот сырой подход является крошечным битом, более выборочным так, чтобы возможности, которые он приведет к сбою, были уменьшены приблизительно на 0,00001%, которые могут быть достаточно.
sed 's|><|>\n<|g' inputfile
Если может быть пробел между угловыми скобками, то это может быть лучше:
sed 's|>[[:space:]]*<|>\n<|g' inputfile
который устранит тот пробел.
Если Вы хотите сделать это правильно, Вам нужно что-то более мощное, чем awk. Одной из проблем является awk, не обработает >
в строках или комментариях. Вы могли бы быть более обеспечены с жемчугом или Python. Если это должно только сделать файл легче посмотреть на визуально, он мог бы быть прекрасным.
Быстрый и грязный awk сценарий
awk '{for(i=1; i<= NF-1; i++) printf "%s>\n",$i}' FS='>'
Это рассматривает >
как разделитель между полями, и распечатывает каждого на его собственной строке. Его довольно сырым, но могло бы быть стартовое место.