программисты на linux ....question

Ответить
Nab
Reactions: 1711
Сообщения: 4408
Зарегистрирован: Вт июн 28, 2022 6:34 am

программисты на linux ....question

Сообщение Nab »

Эй, молодые программисты на linux имеют место здесь быть или где?

Короче, одна персона с хорошим педикюром почему-то спросила меня - как убрать трэйлинг спэйсес
внутри XML tag.
Например имеем следущую строку в XML file:
<FIRST NAME>Вася </FIRST NAME>
и ещё много других строк с другими тагами и трэйлинг спэйсами внутри тагов.
Надо получить
<FIRST NAME>Вася</FIRST NAME>


Вопрос - как в linux убрать эти трейлинг спейсы внутри тагов? Есть ли какая-то линукс команда или рутина. Про sed говорить не надо, нах
Наб его гонял по любому поводу или без. Видимо еще сыграл роль тот факт что тот усер подцепил симпотную оперную певицу профи в жены.
А Наб, который судя по его описаниям, до сих пор любит клеить случайных шалав по старбакса ()
caltrain
Reactions: 32
Сообщения: 180
Зарегистрирован: Чт авг 18, 2022 9:28 pm

Re: программисты на linux ....question

Сообщение caltrain »

Например, вызвать в командой строке
xsltproc transform.xsl input.xml > output.xml

В XSL использовать normalize-space()

Когда XSL файл будет готов, сделать так чтобы он подавался на вход процессора в виде строки

https://stackoverflow.com/questions/159 ... -xml-files
Nab
Reactions: 1711
Сообщения: 4408
Зарегистрирован: Вт июн 28, 2022 6:34 am

Re: программисты на linux ....question

Сообщение Nab »

ok, конкретный пример XML file in input folder moving into OUTPUT с сапрессинг спейсес вне тагс.
INPUT_FOLDER=$1
OUTPUT_FOLDER=$2

echo "input folder: $INPUT_FOLDER"
echo "output folder: $OUTPUT_FOLDER"

#: '
for file in $INPUT_FOLDER/*.xml
do
echo "filename with path: $file"
filename=${file##*/}
echo "filename: $filename"
sed 's/[[:space:]]*$//' "$file" > "$OUTPUT_FOLDER/$filename"

done
#'


Какую линукс команду можно ввести что бы убрать трейлинг спейсы внутри тага?
Наб его гонял по любому поводу или без. Видимо еще сыграл роль тот факт что тот усер подцепил симпотную оперную певицу профи в жены.
А Наб, который судя по его описаниям, до сих пор любит клеить случайных шалав по старбакса ()
Аватара пользователя
Mad Hatter
⭐ Top 5 most interesting users
Reactions: 2019
Сообщения: 10267
Зарегистрирован: Пн июн 13, 2022 7:22 am

Re: программисты на linux ....question

Сообщение Mad Hatter »

Как уже сказал, sed.
Учи реджексы :) пригадицца
Nab
Reactions: 1711
Сообщения: 4408
Зарегистрирован: Вт июн 28, 2022 6:34 am

Re: программисты на linux ....question

Сообщение Nab »

sed убирает трейлинг спейсес вне тагов.
Если есть идея, как убрать трейлинг спейсы внутри тага и конкретно с примером (или на примере) который я привёл - би май гест, азевайс - учи как читать поставленную задачу, нах
Наб его гонял по любому поводу или без. Видимо еще сыграл роль тот факт что тот усер подцепил симпотную оперную певицу профи в жены.
А Наб, который судя по его описаниям, до сих пор любит клеить случайных шалав по старбакса ()
VikKur
Reactions: 549
Сообщения: 1745
Зарегистрирован: Вс авг 27, 2023 10:42 am

Re: программисты на linux ....question

Сообщение VikKur »

как уже сказали sed...
но...любой "tool" на линуксе справится с задачей - perl/awk/ex...ksh/bash/sh наконец )
пс щас попробую
псс в вышепреведённом примере кривой regular expression и он цепляет всё
Аватара пользователя
assassello
Reactions: 1531
Сообщения: 6086
Зарегистрирован: Пн июн 13, 2022 6:46 pm
Откуда: San Jose, CA
Интересы: против Путина и, следовательно, против Трампа

Re: программисты на linux ....question

Сообщение assassello »

В самом простом случае нужно найти \s+(</) и заменить на $1.

Как-то так. Любой тул, который умеет regex find/replace подойдет.
Слава Украине, слава нации! и пиздец - Российской Федерации.
VikKur
Reactions: 549
Сообщения: 1745
Зарегистрирован: Вс авг 27, 2023 10:42 am

Re: программисты на linux ....question

Сообщение VikKur »

sed 's/\(>[^<]*\) \+\(<[^>]*>\)/\1\2/g' "$FILE" > "$OUTPUT"
input - <FIRST NAME>Vasya </FIRST NAME>
output <FIRST NAME>Vasya</FIRST NAME>
ps chatGPT помог ) хотя и отказался сделать это на ksh.ну и не надо
Аватара пользователя
assassello
Reactions: 1531
Сообщения: 6086
Зарегистрирован: Пн июн 13, 2022 6:46 pm
Откуда: San Jose, CA
Интересы: против Путина и, следовательно, против Трампа

Re: программисты на linux ....question

Сообщение assassello »

А почему не
sed 's/\s*\(<\/\)/\1/g' "$FILE" > "$OUTPUT"
Слава Украине, слава нации! и пиздец - Российской Федерации.
VikKur
Reactions: 549
Сообщения: 1745
Зарегистрирован: Вс авг 27, 2023 10:42 am

Re: программисты на linux ....question

Сообщение VikKur »

assassello писал(а): Вт фев 06, 2024 9:54 am А почему не
sed 's/\s*\(<\/\)/\1/g' "$FILE" > "$OUTPUT"
сработало тоже и вроде понятнее. chatGPT наверное туповат, а я мне лень возиться )
Аватара пользователя
Uzito
⭐ Top 5 most interesting users
Reactions: 1451
Сообщения: 6177
Зарегистрирован: Пт июн 24, 2022 1:35 pm

Re: программисты на linux ....question

Сообщение Uzito »

Только если в XML будет [CDATA] который трогать нельзя оно его отформатирует тоже.
Аватара пользователя
Mad Hatter
⭐ Top 5 most interesting users
Reactions: 2019
Сообщения: 10267
Зарегистрирован: Пн июн 13, 2022 7:22 am

Re: программисты на linux ....question

Сообщение Mad Hatter »

Кстати да. XML та ещё фигня.
Тогда уже Питоном ударить по DOMу 🤣
Аватара пользователя
self
Reactions: 1199
Сообщения: 6525
Зарегистрирован: Пт июн 17, 2022 9:21 am

Re: программисты на linux ....question

Сообщение self »

Mad Hatter писал(а): Вт фев 06, 2024 10:42 am Кстати да. XML та ещё фигня.
Тогда уже Питоном ударить по DOMу 🤣
Самое правильное решение
Загрузить исходник любым парсером и тут же выгрузить обратно
«Либерал — это человек, слишком широко мыслящий, чтобы принять свою сторону в споре»
VikKur
Reactions: 549
Сообщения: 1745
Зарегистрирован: Вс авг 27, 2023 10:42 am

Re: программисты на linux ....question

Сообщение VikKur »

self писал(а): Вт фев 06, 2024 2:03 pm
Mad Hatter писал(а): Вт фев 06, 2024 10:42 am Кстати да. XML та ещё фигня.
Тогда уже Питоном ударить по DOMу 🤣
Самое правильное решение
Загрузить исходник любым парсером и тут же выгрузить обратно
Nab
Reactions: 1711
Сообщения: 4408
Зарегистрирован: Вт июн 28, 2022 6:34 am

Re: программисты на linux ....question

Сообщение Nab »

assassello писал(а): Вт фев 06, 2024 9:54 am А почему не
sed 's/\s*\(<\/\)/\1/g' "$FILE" > "$OUTPUT"
это сработало. Все довольны, нах. Спасибо
Наб его гонял по любому поводу или без. Видимо еще сыграл роль тот факт что тот усер подцепил симпотную оперную певицу профи в жены.
А Наб, который судя по его описаниям, до сих пор любит клеить случайных шалав по старбакса ()
caltrain
Reactions: 32
Сообщения: 180
Зарегистрирован: Чт авг 18, 2022 9:28 pm

Re: программисты на linux ....question

Сообщение caltrain »

мне уже третий день пишет тетка, которая в поле yaml хочет вставить JSON, но сам JSON в виде строки, а его полях еще SSH-ключ.

причем, ключ она не хочет прислать, делает все в vi, а когда не работает присылает не копипаст текста, а скриншоты.

а кому какое дело, может Вова - ....ас.
kyk
Reactions: 545
Сообщения: 6995
Зарегистрирован: Ср июн 15, 2022 6:54 pm

Re: программисты на linux ....question

Сообщение kyk »

caltrain писал(а): Ср фев 14, 2024 1:53 pmмне уже третий день пишет тетка
имеет ли gender значение в программировании? А если бы транс писАл или таки Вова - ....ас.?
Ответить