У меня есть файл с записями, разделенными |. Существует несколько разрывов строк, когда часть первой строки перемещается во вторую строку. Если я вычислил количество | в определенной строке, он должен быть согласованным во всем. Как определить, какая строка имеет разрыв строки как таковой и добавить две строки в одну, так как число '|' в каждой строке согласовано во всем?Линейные перерывы в файле Unix
Файл что-то, как показано ниже:
DeptID|EmpFName|EmpLName|Salary
Engg|Sam|Le
wis|1000
Engg|Smith|Davis|2000
HR|Denis
|Lillie|1500
HR|Danny|Borr
inson|3000
IT|David|Letterman|2000
IT|John|Newman|3000
, тогда как я хочу, чтобы вычислить число «|» в каждой строке.
В этом случае каждая строка должна иметь 3 '|' каждый, но из-за разрывов строк, что это не так,
Мой последний требуемый выход
DeptID|EmpFName|EmpLName|Salary
Engg|Sam|Lewis|1000
Engg|Smith|Davis|2000
HR|Denis|Lillie|1500
HR|Danny|Borrinson|3000
IT|David|Letterman|2000
IT|John|Newman|3000
Пожалуйста, разместите некоторые данные примера и ожидаемый результат. –
ответ в дублированном вопросе работает, за исключением добавленного пространства ... поэтому необходима какая-то модификация, и я не знаю, является ли изменение тривиальным (не ссылаясь на разделитель полей, но дополнительное пространство) – Sundeep
Не можете ли вы использовать 'sed 'для замены новой строки на пустую строку? Я имею в виду, что сначала вы используете «ловушку», чтобы знать количество символов '|', а если оно меньше 3, вы удаляете новую строку пустой строкой. – Dominique