Как удалить пробел с помощью команды Sed - PullRequest
0 голосов
/ 04 июля 2019

Моя проблема в том, что у меня есть скрипт, который создает файл, содержащий данные, разделенные a; Последняя колонна содержит белые (между; и значения, такие как text.csv), которые я хотел удалить, я применил большую часть команды с помощью sed, но ничего не изменил. команды, которые я пробовал:

sed '/[ /]*$/d' test.csv
sed -e '/^; *$/d'
sed '/^; *$/d'
sed -e 's/[ ]*;=[ ]*/;=/g'
sed -e 's/[ ]*;[ ]*/;/g'
sed -e 's/; *;/;/g' ( déja fonctionner sur un autre fichier mais pas celle que je veux)
sed -e 's/;= *;/;/g'
tr -d ' '

my text.csv:

=("FRO-GEPSA018");=("34212254600225");01-07-2019/31-07-2019;   1789,32
=("FRO-GNVERT01");=("41985346000584");01-07-2019/31-07-2019;   466,84
=("FRO-ESGED01");=("53983181800064");01-07-2019/31-07-2019;    4788,55
=("FRO-SGE") ;=("54209732400017");01-07-2019/31-07-2019;       1587,78
=("FRO-STO") ;=("54209732400025");01-07-2019/31-07-2019;       798,28
=("FRO-ELOC005");=("55204695500985");01-07-2019/31-07-2019;    4585
=("FRO-ELOC002");=("55204695502627");01-07-2019/31-07-2019;    1997,54
=("FRO-IDFTRT08");=("55204695503542");01-06-2019/30-06-2019;   -30,45
=("FRO-IDFTRT08");=("55204695503542");01-07-2019/31-07-2019;    507,58
=("FRO-ELOC015");=("55204695503682");01-07-2019/31-07-2019;     1393,28
=("FRO-IDFTRT02");=("55204695504060");01-07-2019/31-07-2019;      10,31
=("FRO-IDFTRT10");=("55204695504581");01-07-2019/31-07-2019;    1035,77
=("FRO-ELSIEGNE");=("55204695506040");01-07-2019/31-07-2019;    2749,91
=("FRO-BUB2B01");=("55204695506065");01-06-2019/30-06-2019;        369,06
=("FRO-SCDC01");=("74542015800024");01-07-2019/31-07-2019;      1231,65

@$CHARG_SQLFIC
QUIT;
EOF
         if [ $? -eq 1 ] ; then
          print_log "<E> Erreur lors de l'exécution du script SQL."
          maj_cr 99
         else
          print_log "                   -> Création OK."
          print_log "                   -> Suppression des caractères de mise en forme SQL*Plus..."
          sed -e 's/    //g' \
              -e 's/ //g' \
          $CHARG_FICSOR > $CHARG_FICSOR.tmp
          mv $CHARG_FICSOR.tmp $CHARG_FICSOR

          sed 's/ *;/;/g' $CHARG_FICSOR >> $CHARG_FICSOR1
          sed 's/;  */;/g' $CHARG_FICSOR1 >> $CHARG_FICSOR
         fi
        fi
        imp_etat "$CODSOC" "$CHARG_FICSOR" "Charges"
       fi

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Если все шаблоны замены, которые вы пробовали (в том числе в предыдущем ответе), не сработали, тогда ваши белые должны быть чем-то отличным от пробелов, поэтому вместо используйте \s в шаблон.

0 голосов
/ 04 июля 2019

вы можете попробовать:

sed 's/ //g' text.csv

выход

=("FRO-GEPSA018");=("34212254600225");01-07-2019/31-07-2019;1789,32
=("FRO-GNVERT01");=("41985346000584");01-07-2019/31-07-2019;466,84
=("FRO-ESGED01");=("53983181800064");01-07-2019/31-07-2019;4788,55
=("FRO-SGE");=("54209732400017");01-07-2019/31-07-2019;1587,78
=("FRO-STO");=("54209732400025");01-07-2019/31-07-2019;798,28
=("FRO-ELOC005");=("55204695500985");01-07-2019/31-07-2019;4585
=("FRO-ELOC002");=("55204695502627");01-07-2019/31-07-2019;1997,54
=("FRO-IDFTRT08");=("55204695503542");01-06-2019/30-06-2019;-30,45
=("FRO-IDFTRT08");=("55204695503542");01-07-2019/31-07-2019;507,58
=("FRO-ELOC015");=("55204695503682");01-07-2019/31-07-2019;1393,28
=("FRO-IDFTRT02");=("55204695504060");01-07-2019/31-07-2019;10,31
=("FRO-IDFTRT10");=("55204695504581");01-07-2019/31-07-2019;1035,77
=("FRO-ELSIEGNE");=("55204695506040");01-07-2019/31-07-2019;2749,91
=("FRO-BUB2B01");=("55204695506065");01-06-2019/30-06-2019;369,06
=("FRO-SCDC01");=("74542015800024");01-07-2019/31-07-2019;1231,65
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...