Ваш вопрос очень неточный, поэтому мой ответ предполагает следующее:
- Вы используете Windows
- Каждая строка вашего файла содержит столбцы, разделенные
|
- Вы хотите удалить начальные пробелы из всех столбцов
- Вы хотите использовать пакетный скрипт Windows
Изменение файлов с использованием чистого пакетного скриптинга может быть очень сложным. Часто бывают простые "решения", которые терпят неудачу при столкновении с общими ситуациями. Практически всегда есть обходные пути, но получаемый пакетный отрывок часто становится сложным и медленным.
Но есть мощная гибридная утилита JScript/batch под названием REPL.BAT, которая может легко решить множество проблем обработки текста. REPL.BAT - это чистый скрипт, который будет работать на любом компьютере с Windows начиная с XP. Он выполняет регулярное выражение find/replace в stdin и записывает результат в stdout. Он очень прост в использовании, если вы изучаете регулярные выражения.
Один сложный аспект вашей проблемы заключается в том, что начальные пробелы в первом столбце не следуют за |
разделитель. Надлежащее решение должно решить этот особый случай.
Следующие две команды выполнят вашу задачу
type input.txt | repl "(^|\|) *" "$1" >input.txt.new
move /y "input.txt.new" "input.txt" >nul
Простая модификация регулярного выражения позволит ему убирать как начальные, так и конечные пробелы из каждого столбца. Это решение должно обрабатывать особый случай, когда завершающие пробелы не предшествуют |
разделитель в последнем столбце.
type input.txt | repl "(^|\|) *| *($|\|)" "$1$2" >input.txt.new
move /y "input.txt.new" "input.txt" >nul