Tengo un script bash que eliminará todos los caracteres no Ascii del archivo. Pero quería eliminar la cadena después del carácter no Ascii en todas las columnas. A continuación se muestra el guión,
> #!/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 '^[\0-\x7f]*$' WB*.txt >Supply_chain_Non_Ascii_List_File.txt
~
~
Respuesta1
¿Quiere decir que desea eliminar cualquier cosa en la línea después del primer carácter que no sea ASCII? En caso contrario, proporcione algunos ejemplos.
En caso afirmativo, su sed debería ser:
sed -i 's/[\d128-\d255].*$//' $i.bkp
Esto reemplazará el primer carácter no ASCII Y el resto de la línea por nada.