Это файл на моем интрасеть. Я не могу вспомнить, где я нашел удобный sed
однострочный. Вы могли бы найти что-то, если вы ищете «SED однострочника»
Вы когда-нибудь нужно объединить строки текста, но это слишком утомительно, чтобы сделать это вручную.
Например, представьте, что у нас есть текстовый файл с сотнями строк, которые выглядят следующим образом:
14/04/2003,10:27:47,0
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.011,0.975,0.005
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.011,0.975,0.005
14/04/2003,10:30:51,600
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.011,0.975,0.005
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.010,0.975,0.005
14/04/2003,10:34:02,600
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.011,0.975,0.005
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.010,0.975,0.005
Каждая дата (14/04/2003) является началом записи данных, и она продолжает на следующих четырех строках.
Мы хотели бы ввести это в Excel как файл с разделителями-запятыми и посмотреть каждую запись в своей строке.
В нашем примере, нам нужно добавить любую строку, начинающуюся с G или I в предыдущей строке, и вставить запятую, чтобы произвести следующее:
14/04/2003,10:27:47,0,IdVg,3.000,-1.000,0.050,0.006,GmMax,0.011,0.975,0.005,IdVg,3.000,...
14/04/2003,10:30:51,600,IdVg,3.000,-1.000,0.050,0.006,GmMax,0.011,0.975,0.0005,IdVg,3.000,...
14/04/2003,10:34:02,600,IdVg,3.000,-1.000,0.050,0.006,GmMax,0.011,0.975,0.0005,IdVg,3.000,...
Это классическое применение «регулярное выражение», и, опять же, sed приходит на помощь.
Редактирование может быть сделано с помощью одного SED команды:
sed -e :a -e '$!N;s/\n\([GI]\)/,\1/;ta' -e 'P;D' filename >newfilename
Я не сказал, что было бы очевидно, или просто, не так ли?
Это такая команда, которую вы записываете где-то в редких случаях, когда вам это нужно.
голосовать за хорошее объяснение. – Anders