Powershell удалить пробелы в файле
Я пробовал использовать команду Trim ("), но она не удаляет пробелы.
Вот мой оригинальный сценарий, который удаляет все пробелы в начале и в конце, а также любые пустые строки. что мне нужно добавить в сценарий, чтобы удалить пробелы между словами?
Заранее спасибо. Я ценю любую помощь.
2 ответа
Я пытаюсь экспортировать таблицу из sql и сохранить ее как .txt, используя powershell. Однако, когда я открываю свой файл .txt, данные не находятся в табличном формате Это формат моего файла .txt: Name : Billy Bob Address : Nowhere Rd State : NA Number : 999-999-9999 Я бы хотел, чтобы мой .txt был.
как я мог бы использовать пробелы в python, чтобы в could я мог указать, как мах пространство между словами печать John and (5 spaces) Mark went to (3 spaces) London как я мог бы указать 5 пробелов в качестве кода, не вводя его как
Вы можете использовать команду -replace с простым regex:
\s соответствует любому символу пробела [\r\n\t\f ]
Я бы пошел с этим подходом (где герой-это функция замены):
Похожие вопросы:
Я использую следующий regex для того же самого: ^\S.*\S$ но этот regex не работает в случае нескольких пробелов между словами. и еще одна вещь, она не позволяет вам ввести ни одного символа Я хочу.
Я действительно очень новичок в powershell. Я хочу использовать powershell для чтения txt-файла и изменения его в другой формат. Чтение из txt-файла. Форматирование данных( удаление строк, удаление.
Мне нужно заменить несколько пробелов между словами в строке одним пробелом, используя java. Для этого я использовал приведенный ниже код. Но это не работает, когда одно из слов в этих двух словах.
Я пытаюсь экспортировать таблицу из sql и сохранить ее как .txt, используя powershell. Однако, когда я открываю свой файл .txt, данные не находятся в табличном формате Это формат моего файла .txt.
как я мог бы использовать пробелы в python, чтобы в could я мог указать, как мах пространство между словами печать John and (5 spaces) Mark went to (3 spaces) London как я мог бы указать 5 пробелов.
Моя цель-в конечном итоге создать файл CSV, который я смогу использовать в PowerShell. Однако у меня возникли проблемы с разделительным аспектом команды. Моя проблема заключается в том, что между.
Я пытаюсь написать программу для вставки пробелов между словами, чтобы соответствовать столбцу, например: Вы читаете в строке текста, например: Good morning how are you? Вы читаете по ширине.
Рассмотрим,что в txt-файле есть n строк, дадим, например, по 4 строки. Ввод из файла: А Б В Г Д Е C F G H I J K Л М Н О П Вопрос R С Т Ожидаемые результаты файла: ABCDE FGHIJK LMNOP QRST Результат.
В колонке Name отображается тип строка. Со строками часто нужно переводить их в другой регистр, измерять длину, заменять символы.
Для примера переведем строку в верхний регистр:
Или обратная операция, которая переведет строку Powershell в верхний регистр:
Можно проверить содержание символов в конце строки, которое вернет булевое значение True при положительном результате:
Обратите внимание, что регистр букв имеет значение:
Можно использовать несколько методов один за другим:
Поиск подстроки в Powershell, тоже возвращает булевое значение:
Можно вернуть номер первого упомянутого символа - это называется индексом:
По этим индексам можно получить срез подстроки в Powershell. В моем случае первый индекс - это знак пробела:
Можно указать второй индекс, но нужно помнить, что после объявления первого индекса второй должен объявляться относительно первого:
Вставка новой строки по индексу:
Измерение длины строки в Powershell:
Один из самых частых методов в Powershell это преобразование строки в массив. В моем случае разделитель пробел, но может быть любой другой:
Результатом работы команды в PowerShell всегда является не текст, а объект. Это касается и работы с текстом. Каждая строка является отдельным объектом со своими свойствами и методами, которыми можно пользоваться для обработки текста.
Для примера создадим переменную, в которую поместим строку, а затем выведем ее свойства и методы:
$string = ″My name is Kirill″
$string | Get-Member
Свойства
А свойство Chars позволяет обращаться к любому символу в строке по его номеру, например:
Кстати, к символам в строке можно обращаться без использования Chars, а как к элементам массива, по индексу:
А если указать отрицательное число, то массив будет перебираться с конца:
Также кроме одного символа можно указать диапазон, например:
Методы
Теперь возьмем строку и начнем над ней издеваться приступим к методам.
Метод Insert служит для вставки подстроки в исходную строку, начиная с указанного символа. Для примера вставим ″ .N″ в конец строки (после 17 символа):
Метод Remove удаляет символы из строки начиная с указанного символа, например:
Метод Replace находит в исходной строке подстроку и заменяет ее на другую, например:
Метод Split разбивает строку на массив строк с помощью разделяющего символа или группы символов. Например так мы разобьем строку, используя в качестве разделителя пробел:
А так укажем в качестве разделителя букву е:
Если необходимо указать несколько разделителей, то достаточно просто перечислить их через запятую:
Метод Substring позволяет получить подстроку, сформированную из исходной строки. Есть два варианта использования этого метода. К примеру результатом выполнения следующей команды будет строка, полученная путем удаления из исходной строки заданного количества символов:
А таким способом мы получим подстроку, сформированную из исходной строки, начинающуюся с указанной позиции (8) и содержащую указанное количество символов (9):
Метод Clone создает точную копию исходного объекта, например:
Метод CompareTo производит сравнение двух строк и выдает 0, если строки совпадают:
В случае несовпадения метод может выдать -1 (если первая строка больше второй) или 1 (если первая строка меньше второй). Также при использовании этого метода стоит учитывать, что регистр символов влияет на результат сравнения. Если необходимо сравнить строки без учета регистра, то можно воспользоваться статическим методом Compare, о котором чуть позже.
Метод Equals также сравнивает две строки и в зависимости от результата возвращает True или False:
Кстати, такой же результат получается при использовании оператора сравнения -eq:
$string -eq $string2
Метод Contains проверяет наличие в строке указанной подстроки, и в зависимости от результата возвращает True или False. Например:
Метод StartsWith проверяет, начинается ли строка с указанной подстроки:
а метод EndsWith проверяет, заканчивается ли исходная строка подстрокой:
Обратите внимание, что эти методы также чувствительны к регистру символов.
Говоря о зависимости от регистра символов, стоит упомянуть еще два метода. Метод ToUpper переводит исходную строку в верхний регистр:
а метод ToLower соответственно в нижний:
С их помощью можно избавиться от регистрозависимости, например при поиске или сравнении:
Метод IndexOf находит индекс начала вхождения подстроки в исходной строке. Например, создадим строковую переменную:
$string = ″substring one, substring two, substring three″
Теперь выведем индекс начала вхождения подстроки (substring):
Методы PadLeft и PadRight позволяют дополнить исходный текст до нужного количества символов слева или справа. Для примера создадим новую переменную $string и посмотрим ее длину:
$string = ″my name is Vasya Pupkin″
$string.Length
Как видите, строка содержит 23 символа. Дополним ее точками до 26 символов слева:
а получившуюся строку дополним знаками вопроса до 30 символов справа:
В принципе, процесс можно не разбивать на части, а дополнить сразу с двух сторон:
и лишние знаки вопроса в конце:
Немного о типах данных. Текущий тип данных можно посмотреть с помощью метода GetType, например:
$a = ″string ″
$a.GetType()
В поле Name указан тип данных String (строка).
Строковые данные можно преобразовать в другой тип данных, для чего у строки имеется ряд методов. Для примера возьмем метод ToCharArray и с его помощью преобразуем строку в массив символов:
Если теперь проверить тип данных, то вместо String мы увидим тип Char[].
Преобразовать тип данных можно и с помощью статического метода Convert. Для примера создадим переменную, содержащую строку, а затем преобразуем ее в число (Int32);
$string = ″123″
$int = [convert]::ToInt32($string)
Статические методы
Кроме обычных к строке можно применять статические методы. Вывести их список можно все той же командой Get-Member с ключом -Static.
Методов много, поэтому коротко пробежимся по некоторым из них.
Метод Concat используется для объединения нескольких строк. В качестве примера создадим три стоковых переменных и объединим их:
$a = ″one″
$b = ″two″
$c = ″three″
[string]::Concat($a,$b,$c)
Метод Join также объединяет несколько строк, но с использованием заданного разделителя. Например, объединим строки используя в качестве разделителя двоеточие:
Метод Copy создает точную копию исходной строки:
Метод Compare производит сравнение двух строк и выдает 0 при их совпадении или 1\-1 при несовпадении, аналогично методу CompareTo:
Метод Equals также производит сравнение и выдает результат в виде True\False:
$a = ″string″
$b = ″String″
А теперь сравним их. Эта команда покажет, что строки идентичны:
И еще пара интересных методов для проверки строк. Метод IsNullOrEmpty проверяет наличие строки, а также не является ли она пустой строкой:
Метод IsNullOrWhiteSpace тоже проверяет наличие строки, а также то, что строка содержит только white-space символы (пробел, табуляция, символ новой строки и т.п.):
Основы программирования со случайными числами и переменными
Я уже пробовал кое-что, но по какой-то причине они не работают.
Я, вероятно, упускаю что-то действительно очевидное, но если бы кто-нибудь мог мне помочь или показать более простой способ добиться этого, я был бы признателен.
Я собирался передать переменную в команду и разделить ее таким образом, но ни один из примеров, которые я видел, не работал, хотя они выглядят намного проще.
В Replace оператор означает Замени что-нибудь другим; не путайте с функцией удаления.
Чтобы удалить все пробелы в начале и конце строки и заменить все двойные и более пробелы или символы табуляции на символ пробела, используйте
или более родной System.String метод
ОБНОВЛЕНИЕ: вы также можете использовать $str = $str.Trim() , вместе с TrimEnd() а также TrimStart() . Подробнее читайте на странице MSDN System.String.
- Ответ может сбить с толку учащегося / учащегося, поскольку вы ссылаетесь на другие замены помимо пробелов.
Вы близко. Вы можете удалить пробелы, используя replace метод вроде этого:
Между вторым набором кавычек в методе замены не должно быть пробелов или символов (замена пробелов ничем).
У вас также есть методы Trim, TrimEnd и TrimStart класса System.String. Метод обрезки удаляет пробелы (с парой особенностей Unicode) из начальной и конечной части строки, позволяя при желании указать символы для удаления.
TrimStart и TrimEnd работают одинаково, только обрезая начало или конец строки.
Ты можешь использовать:
если вы хотите удалить все пробелы, вы можете использовать:
replace берет строку и заменяет пробел пустой строкой (длины 0), другими словами, пробел просто удаляется.
Читайте также: