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

Ответить
Nab
Reactions: 1924
Сообщения: 5047
Зарегистрирован: Вт июн 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: 42
Сообщения: 247
Зарегистрирован: Чт авг 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: 1924
Сообщения: 5047
Зарегистрирован: Вт июн 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: 2228
Сообщения: 11357
Зарегистрирован: Пн июн 13, 2022 7:22 am
Откуда: Торонто

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

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

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

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

Сообщение Nab »

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

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

Сообщение VikKur »

как уже сказали sed...
но...любой "tool" на линуксе справится с задачей - perl/awk/ex...ksh/bash/sh наконец )
пс щас попробую
псс в вышепреведённом примере кривой regular expression и он цепляет всё
Аватара пользователя
assassello
Reactions: 1799
Сообщения: 6717
Зарегистрирован: Пн июн 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
:: viewtopic.php?t=5352

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: 1799
Сообщения: 6717
Зарегистрирован: Пн июн 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
:: viewtopic.php?t=5352

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: 1636
Сообщения: 6762
Зарегистрирован: Пт июн 24, 2022 1:35 pm

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

Сообщение Uzito »

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

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

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

Кстати да. XML та ещё фигня.
Тогда уже Питоном ударить по DOMу 🤣
Аватара пользователя
self
Reactions: 1373
Сообщения: 7363
Зарегистрирован: Пт июн 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
:: viewtopic.php?t=5352

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

Сообщение VikKur »

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

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

Сообщение Nab »

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

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

Сообщение caltrain »

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

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

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

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

Сообщение kyk »

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