LINUX.ORG.RU

Форматирование содержания

 ,


0

2

Доброго времени суток
Есть типовое содержание. Например:

Chapter 1: Lab Preparation
Lesson 1
Introduction and project overview
00:56
Lesson 2
Introduction to the Mannequin system
06:16
Lesson 3
Replacing parts of the mannequin
10:36
Chapter 2: Merge 
Lesson 4
Preparing to merge the different pieces
07:23
Lesson 5
Starting to block out the anatomy
11:02
Lesson 6
Adding more volume to our torso
11:53

Как получить отформатированное содержание?
Chapter 1: Lab Preparation
Lesson 1 Introduction and project overview 00:56
Lesson 2 Introduction to the Mannequin system 06:16
Lesson 3 Replacing parts of the mannequin 10:36
Chapter 2: Merge 
Lesson 4 Preparing to merge the different pieces 07:23
Lesson 5 Starting to block out the anatomy 11:02
Lesson 6 Adding more volume to our torso 11:53

Заранее спасибо

Здесь лучше awk или скриптовый язык, на sed будет через одно место.

anonymous ()

плюсую анона

awk '/^Lesson/ { ORS=" " }
  /^[0-9][0-9]:[0-9][0-9]$/ { ORS="\n" }
  { print $0 }
  ' 
f1u77y ★★★ ()
Последнее исправление: f1u77y (всего исправлений: 2)
Ответ на: плюсую анона от f1u77y

А если тексты разные. Но в них есть главы или секции. Например, этот текст.

Section 1: Welcome
1
Why take this course?
01:03
2
What is Mean Stack?
06:06
3
What tools do yo need
03:10
Section 2: Project: Creating a UserStory app (server side part)
4
Start your first project
04:53
5
Setting up
04:46
6
Your first Hello World
02:45
7
Форматированный текст
Section 1: Welcome
1 Why take this course? 01:03
2 What is Mean Stack? 06:06
3 What tools do yo need 03:10
Section 2: Project: Creating a UserStory app (server side part)
4 Start your first project 04:53
5 Setting up 04:46
6 Your first Hello World 02:45
chemtech ()
Последнее исправление: chemtech (всего исправлений: 1)
Ответ на: комментарий от chemtech

тогда сформулируй задание чётче: что именно может быть в тех строках, где у тебя в начале стояло Lesson? и может ли стоять вместо Chapter что ещё?

а пока так:

awk 'NR == "1" {fl_name = $1}
  $1 == fl_name {last_fl_line = NR}
  {ORS = " "}
  ((NR - (last_fl_line + 1)) % 3 == 2) || (NR == last_fl_line) {ORS = "\n"}
  {print $0}'

f1u77y ★★★ ()
Ответ на: комментарий от chemtech

и да, «7» в конце входных данных точно не лишнее?

f1u77y ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.