Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Ответить
Настройки темы
CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Старожил


Сообщения: 286
Благодарности: 10

Профиль | Отправить PM | Цитировать


Изменения
Автор: 9119
Дата: 16-12-2020
Вложения
Тип файла: zip source.zip
(67.4 Kb, 7 просмотров)
Добрый.

Есть однотипные файлы txt. В них строка №2. Очень длинная. Явно превышающая стандартное ограничение.
find и findstr пишут "длинная строка"
txt во вложении.

Начинается нужная строка всегда с "audioContent".


Нужно:

1) скопировать строку №2 из source.txt в out.txt.

или

в source.txt удалить ВСЕ строки кроме №2.

В идеале, нужно решение без привязки к искомым словам, а просто к номеру строк.


2) В результирующем txt удалить пробелы, слово "audioContent" и (")двойные кавычки(")

Отправлено: 16:11, 16-12-2020

 

Старожил


Сообщения: 286
Благодарности: 10

Профиль | Отправить PM | Цитировать


Цитата Iska:
Не проверялось »
да, это похоже то, что нужно... работает. и текст в одну строку переводится, без пробелов.
Окно только под себя настрою, дабы текст можно было удобнее редактировать.

Последний раз редактировалось 9119, 17-12-2020 в 02:42.


Отправлено: 01:38, 17-12-2020 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


Iska, можно проще поступить (без окон) и бейсик не привлекать:

Цитата 9119:
как это совместить с вариантом предложенным на предыдущей странице? »
Цитата 9119:
достаточно чтобы скрипт стал на паузу и запросил ввод текста »
Код: Выделить весь код
$json = Get-Content text.json | ConvertFrom-Json
$json.input.text = read-host "Пожалуйста, введите или вставьте из буфера текст"
$json | ConvertTo-Json | Set-Content new.json

-------
scio me nihil scire. Ѫ


Отправлено: 07:58, 17-12-2020 | #22


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


YuS_2, не то. Из-под консоли — Read-Host консольный будет, плюс лишнее действие нужно.

Отправлено: 08:19, 17-12-2020 | #23


Старожил


Сообщения: 286
Благодарности: 10

Профиль | Отправить PM | Цитировать


Цитата 9119:
работает. и текст в одну строку переводится, без пробелов »
заметил, что если запускать скрипт с текстом в буфере (скажем 5000 символов), то весь текст уже в поле ввода (что, к слову очень удобно)...
Но если при этом стать в это поле, и нажать "вставить", вставляется только малое количество текста (500-1000 символов)
По умолчанию какое-то ограничение на кол-во символов для InputBox?

Отправлено: 10:42, 17-12-2020 | #24


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


Цитата Iska:
Из-под консоли — Read-Host консольный будет, плюс лишнее действие нужно. »
Почему не то? Вроде, как раз, это и требовалось... там я процитировал. Окно никаких преимуществ, всё равно, не даст ведь.
А какое лишнее действие? Ровно столько же, как и в окне.

-------
scio me nihil scire. Ѫ


Отправлено: 11:34, 17-12-2020 | #25


Старожил


Сообщения: 286
Благодарности: 10

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
Вроде, как раз, это и требовалось »
нужны были разные варианты, но предпочтительнее все таки окно отдельное.
Планирую в нем сделать листбоксы и для настройки других параметров в text.json.



Помогите разобраться с вводом текста в поле, пож.
Пример: копируем из статьи 3 абзаца. Между абзацами - пустые строки (1-3 пустых строки).
Вставляем в поле - вставляется только первый абзац, т.е все символы до первой пустой строки.

Если предварительно сделать все 3 абзаца в 1 строку - то в поле вставляется весь текст.
1) Как-то можно побороть такое неудобство, чтобы не нужно было каждый раз в 1 строку все делать, чтобы это было автоматом при вставке?

2) Поле для ввода текста очень узкое (в 1 строку буквально). Когда вставляешь туда много текста - редактировать его там очень неудобно.
Хотелось бы иметь 8-10 строк высоты.. в идеале с возможностью скрола.
Пробовал задавать ширину и высоту поля ввода. Ширина тянется, а вот высота - нет.

Вот так, на сейчас, окно выглядит
$p='E:\11\bin'
$json = Get-Content $p\text.json | ConvertFrom-Json

Add-Type -assembly System.Windows.Forms

$main_form = New-Object System.Windows.Forms.Form
$main_form.Text ='google text-to-speech'
$main_form.Width = 500
$main_form.Height = 500
$main_form.AutoSize = $true



$TextBox = New-Object System.Windows.Forms.TextBox
$TextBox.Width = 450
$TextBox.AutoSize = $true
$TextBox.Location = New-Object System.Drawing.Point(50,200)
$TextBox.Text = Get-Clipboard -Format Text
$main_form.Controls.Add($TextBox)

$button = New-Object System.Windows.Forms.Button
$button.Text = 'OK'
$button.Location = New-Object System.Drawing.Point(400,250)
$button.add_Click({Click_Button});
$main_form.Controls.Add($button)





function Click_Button
{
$json.input.text = $TextBox.Text
$json | ConvertTo-Json | Set-Content $p\text.json
}

$main_form.ShowDialog()

Последний раз редактировалось 9119, 17-12-2020 в 13:48.


Отправлено: 13:14, 17-12-2020 | #26


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


YuS_2, InputBox даёт возможность зараз подставить умолчальное значение из Буфера обмена. И не во всех ОС работает вставка в окно консоли без предварительных настроек.

9119, с предыдущей страницы: Создание настраиваемого поля ввода - PowerShell | Microsoft Docs.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:54, 17-12-2020 | #27


Старожил


Сообщения: 286
Благодарности: 10

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Безымянный.png
(8.3 Kb, 6 просмотров)

Iska, я изучил эту информацию и не только ее...
все дело в том, что как не крути не получается у меня сделать в несколько строк это.
Пробовал через TextBox, ListBox. ComboBox.
Все время одна строка... (

upd: решил.
Код: Выделить весь код
$TextBox.Multiline = $True;
Но, все же непонятно как добавить скрол, если вставленный текст весь не виден в окне (приходится опускаться/подыматься стрелками клавы)
Также в данном поле не работает почему-то сочетание ctrl+a, например.
Если владеете инфой - объясните на пальцах, пож.

Последний раз редактировалось 9119, 17-12-2020 в 17:38.


Отправлено: 17:11, 17-12-2020 | #28


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


Цитата 9119:
нужны были разные варианты, но предпочтительнее все таки окно отдельное.
Планирую в нем сделать листбоксы и для настройки других параметров в text.json. »
Ну, это уже другое дело. Раз уж нравится больше настраиваемая форма, то надо в условия задачи это и вписать...

Цитата Iska:
InputBox даёт возможность зараз подставить умолчальное значение из Буфера обмена. »
Это, как раз, не проблема, один условный блок всё решает...

Цитата Iska:
И не во всех ОС работает вставка в окно консоли без предварительных настроек. »
С этим уже хуже. Но и ТС, вроде уточнил, что форма подходит больше...

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:02, 17-12-2020 | #29


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 9119:
Но, все же непонятно как добавить скрол, если вставленный текст весь не виден в окне (приходится опускаться/подыматься стрелками клавы) »
View Multiple Lines in TextBox Control - Windows Forms .NET Framework | Microsoft Docs

Цитата 9119:
Также в данном поле не работает почему-то сочетание ctrl+a, например. »
Если задано свойство .Multiline — не работает. Вроде как старый, известный баг. Который то «лечится», то возвращается заново.

Косо-криво на верхнем уровне можно обойти своим обработчиком:
Скрытый текст
Код: Выделить весь код
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

[System.Windows.Forms.Application]::EnableVisualStyles()

$oForm                  = New-Object System.Windows.Forms.Form

$oForm.Text             = 'Sample form'
$oForm.Size             = New-Object System.Drawing.Size(300,200)
$oForm.StartPosition    = 'CenterScreen'

$oTextBox               = New-Object System.Windows.Forms.TextBox
$oTextBox.Location      = New-Object System.Drawing.Point(10,40)
$oTextBox.Size          = New-Object System.Drawing.Size(260,80)
$oTextBox.Multiline     = $true
$oTextBox.AcceptsReturn = $true
$oTextBox.WordWrap      = $false
$oTextBox.ScrollBars    = [System.Windows.Forms.ScrollBars]::Both

$oTextBox.Add_KeyDown({
  if ($_.Modifiers -eq [System.Windows.Forms.Keys]::Control -and $_.KeyCode -eq [System.Windows.Forms.Keys]::A) {
     $oTextBox.SelectAll()
  }
})

$oForm.Controls.Add($oTextBox)

$oForm.Add_Shown({$oTextBox.Select()})
$oForm.ShowDialog()


Цитата YuS_2:
Это, как раз, не проблема, один условный блок всё решает... »
Поясните примером.

Последний раз редактировалось Iska, 17-12-2020 в 19:52.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:47, 17-12-2020 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Отсортировать строки в текстовом файле blackeangel Программирование и базы данных 4 10-01-2017 11:31
CMD/BAT - [решено] удалить пусты строки в текстовом файле warkdimka Скриптовые языки администрирования Windows 8 19-02-2016 15:31
CMD/BAT - [решено] удалить все пустые строки, кроме самой последней Alexander_88 Скриптовые языки администрирования Windows 8 05-01-2015 12:43
[решено] Как удалить строки в текстовом файле при отсутсвии файла в опрелеленном месте? Pozia AutoIt 23 14-05-2009 21:41
[решено] Работа из командной строки | Убрать все пробелы в текстовом файле Greyman Хочу все знать 11 17-06-2007 22:44




 
Переход