я пример файл с именем «test.in», как показано ниже, с передними и задними пространствами:Удаление пробелов из всех элементов массива
Hi | hello how | are you?
I need | to remove | leading & trailing
spaces | where ever | it's located
мне нужно поставить элементы, разделенные «|» в массиве с «\ n» в качестве основного разделителя.
Я хочу, чтобы каждый элемент массива не имел передних или конечных пробелов, допускались только пробелы между символами. Я использую образец кода для проверки результатов, прежде чем я ставил код, это мое основное развертывание.
Часть образца сценария:
OIFS="$IFS"
IFS=$'\n'
while read LINE
do
IFS='|'
my_tmpary=($LINE)
echo ${my_tmpary[@]}
my_ary=`echo ${my_tmpary[@]} | awk '$1=$1'`
echo ${my_ary[@]}
done < test.in
Я хотел бы не использовать цикл, чтобы очистить лишние пробелы. Я пробовал & методы ошибок с помощью sed, awk, tr, но пока это не для меня.
my_ary [@] должно быть, как это
Hi hello how are you?
I need to remove leading & trailing
spaces where ever it's located
Ваш вопрос не очень ясен в данный момент .. Вы хотите обрезать пробелы вокруг '' '.В любом случае всегда полезно поставить образец вывода, чтобы выразить себя лучше. – sjsam
Также 'my_ary' не является массивом. Он просто содержит результат результата команды 'echo $ {my_tmpary [@]} | awk '$ 1 = $ 1'', который является строкой. – sjsam
Остановитесь, вы подходите совершенно неправильно, и вы даже не должны иметь массив оболочек. См. [Why-is-use-a-shell-loop-to-process-text -emed-bad-practice] (http://unix.stackexchange.com/questions/169716/why-is-using-a-shell -loop-процесс-текст рассмотренной-плохая практика). Если вы публикуете новый вопрос с кратким тестируемым вводом проб и ожидаемым результатом, мы можем помочь вам сделать это правильно. –