Remove todo o caractere após o caractere não ascii em todas as colunas

0

Eu tenho um script bash que irá remover todo o caracter Non Ascii do arquivo. Mas eu queria remover a string após o caractere não Ascii em todas as colunas. Abaixo está o script,

> #!/bin/bash

SCRIPT_PATH=/trmout/TRMOUTPUT_PROD
BKP_PATH=/appinfprd/bi/infogix/Temp_Files/SUPPLY_CHAIN

File_Name=WB


########################################################################
##Deleting the precessed files ####
########################################################################

cd $BKP_PATH
rm *.*

#########################################################################
### removing the non ascii char from all Supply chain files #######
#########################################################################

for i in $SCRIPT_PATH/$File_Name*.txt
do

cp $i $BKP_PATH

##########################################################################
##Replacing the NON ASCII Char from Supply Chain files and saving it.####
##########################################################################
cat $i  >> $i.bkp

sed -i 's/[\d128-\d255]//g' $i.bkp

mv $i.bkp $i

done


#############################################################################################
##Creating a sample file which will be having the file name which has NON ASCII Char in it.##
#############################################################################################

cd $SCRIPT_PATH

grep -vlP '^[
> #!/bin/bash

SCRIPT_PATH=/trmout/TRMOUTPUT_PROD
BKP_PATH=/appinfprd/bi/infogix/Temp_Files/SUPPLY_CHAIN

File_Name=WB


########################################################################
##Deleting the precessed files ####
########################################################################

cd $BKP_PATH
rm *.*

#########################################################################
### removing the non ascii char from all Supply chain files #######
#########################################################################

for i in $SCRIPT_PATH/$File_Name*.txt
do

cp $i $BKP_PATH

##########################################################################
##Replacing the NON ASCII Char from Supply Chain files and saving it.####
##########################################################################
cat $i  >> $i.bkp

sed -i 's/[\d128-\d255]//g' $i.bkp

mv $i.bkp $i

done


#############################################################################################
##Creating a sample file which will be having the file name which has NON ASCII Char in it.##
#############################################################################################

cd $SCRIPT_PATH

grep -vlP '^[%pre%-\x7f]*$' WB*.txt >Supply_chain_Non_Ascii_List_File.txt
~
~
-\x7f]*$' WB*.txt >Supply_chain_Non_Ascii_List_File.txt ~ ~
    
por Midhun 29.11.2017 / 07:32

1 resposta

0

Você quer dizer que quer apagar alguma coisa na linha depois do primeiro caractere não-ascii? Se não, por favor, forneça alguns exemplos.

Se sim, o seu sed deve ser:

sed -i 's/[\d128-\d255].*$//' $i.bkp

Isso substituirá o primeiro caractere não ASCII E o restante da linha por nada.

    
por 01.12.2017 / 15:59