Shell Script - Скопіюйте текст з одного файлу в інший

Linux є дуже надійною операційною системою, що вимагає багато практики і знань. Проте, починаючи з регулярного використання Linux, обробляючи файли, копіюючи, використовуючи сценарій оболонки, все стає досить легким і простим. Якщо у вас виникли проблеми з копіюванням тексту з файлу в інший, використовуючи сценарій оболонки, прочитайте статтю нижче. Навіть хтось новий

Проблема

Мені потрібно скопіювати текст між початковим і кінцевим шаблоном з одного файлу в інший.

Наприклад,

Припустимо, у мене є файл із таким вмістом:

 привіт world1 привіт world2 привіт world3 привіт world4 привіт world5 звуковий сигнал 

Мені потрібен скрипт оболонки, який може створити такий файл:

 привіт world2 привіт world3 привіт world4 привіт world5 звуковий сигнал 

Я не знаю номерів рядків для діапазону, який я хочу скопіювати, я просто хочу скопіювати з появи "hello world2" на випадок "hello world5" + 1 рядок

У випадку, якщо вам цікаво, що я намагаюся зробити тут, я хочу, щоб запустити потоку дамп на моїй машині, використовуючи убийство -3, але вихід цього йде на стандартний висновок, який в моєму випадку спрямований на файл jboss, який має багато інших журналів у ньому. Тому я хочу запустити цей скрипт, щоб витягти звалища потоків у окремий файл після того, як було виконано вбивство. Зрозуміло, у файлі jboss.out може бути більше одного дампа потоків.

Рішення

Найпростіший спосіб, якщо ваш вхідний файл знаходиться на /folder/somefile.txt,

 # Script lines.txt # Читання вхідного файлу в рядкову змінну. var str введення; cat "/folder/somefile.txt"> $ input # Видалити все перед "hello world2". stex "] ^ hello world2 ^" $ input> null # Видалити все після "hello world5n". stex "^ hello world5n ^ [" $ input> null # $ введення тепер має тільки бажану частину. Надрукуйте його. echo $ input 

Скрипт знаходиться в бітерписі (//www.biterscripting.com). Щоб спробувати, збережіть скрипт як /Scripts/lines.txt, почніть бітершипінг і введіть наступну команду.

скрипт lines.txt

Скрипт також може бути викликаний безпосередньо з іншої програми, або іншої оболонки, як,

/biterScripting/biterScripting.exe lines.txt

Переконайтеся, що замість /folder/somefile.txt використовується правильне розташування файлу. Зверніть увагу на подвійні лапки ^, [і] в синтаксисі команди екстрактора рядків. Не соромтеся перекладати сценарій на будь-яку іншу мову.

Примітка

Завдяки SenHu за цей відгук на форумі.

Попередня Стаття Наступна Стаття

Кращі Поради