awk: Programm-limit überschritten: maximale Anzahl der Felder Größe=32767
wenn ich bin mit meinem shell-script in ubuntu 14.04 ich eine Fehlermeldung, wie unten
awk: program limit exceeded: maximum number of fields size=32767
FILENAME="ensemble_features/Training_BOOKS_POS_Bigram_with_stemming_BOOLEAN_FVT.csv" FNR=1 NR=1
cut: invalid byte, character or field list
Try 'cut --help' for more information.
-1
cut: invalid byte, character or field list
Try 'cut --help' for more information.
6656
user@user-Lenovo-IdeaPad-Z410:~/Thesis/BOOKS$ bash Training_POS_Uni_Bi.sh
awk: program limit exceeded: maximum number of fields size=32767
FILENAME="ensemble_features/Training_BOOKS_POS_Bigram_with_stemming_BOOLEAN_FVT.csv" FNR=1 NR=1
cut: invalid byte, character or field list
Try 'cut --help' for more information.
-1
cut: invalid byte, character or field list
Try 'cut --help' for more information.
6656
ich füge mein script unten
cd /home/user/Thesis/BOOKS/Features/Training/POSITIVE/
fname="ensemble_features"
mkdir $fname
cp /home/user/Thesis/BOOKS/Features/Training/POSITIVE/Training_BOOKS_POS_unigram_FVT_with_stemming_BOOLEAN.csv ensemble_features/
cp /home/user/Thesis/BOOKS/Features/Training/POSITIVE/Training_BOOKS_POS_Bigram_with_stemming_BOOLEAN_FVT.csv ensemble_features/
mkdir "proces"
cnt=0
for file in $fname/*
do
#Number of columns
num=`awk 'BEGIN {FS=",";c=0};{if (c==0 ){print NF; c=1}}END{}' $file`
if [[ cnt -eq 0 ]];then
cut -d, -f $num $file >class.csv
cnt=1;
fi
num=$((num-1))
echo $num
nfname=`basename $file`
#Cut the columns
cut -d',' -f1-$num $file > proces/cutlast$nfname
done
#Paste multiple csv
paste -d',' proces/* > comb.csv
paste -d, comb.csv class.csv > Training_BOOKS_Unigram_Bigram_POS_Ensemble_Features_BOOLEAN.csv
rm comb.csv
rm class.csv
rm -r proces
rm -r ensemble_features
meine input-Dateien enthalten 38453 Spalten und 6656 Spalten jeweils.Kann jemand mir helfen um diesen Fehler zu beheben?
- Verwenden Sie nicht
awk
? Haben Sie vielleicht mehr Glück mit z.B. Python (import csv
). - wie kann ich mein edit pgm?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf ubuntu awk ist ein soft-link zu irgendeiner Variante von awk, heute ist es standardmäßig mawk. Versuchen Sie zum installieren von gawk. gawk nicht über eine Beschränkung der Anzahl der Felder in einem Datensatz.
BTW, python kann eine bessere langfristige Lösung, wenn Sie bekam die Zeit, es zu lernen.
gawk
kommt ohne eine maximale Anzahl von Spalten. Außerdem, Python ist im Alter langsamer alsawk
und deshalb keine alternative für größere Dateien.