OpenNMT / OpenNMT-py

Open Source Neural Machine Translation and (Large) Language Models in PyTorch
https://opennmt.net/
MIT License
6.75k stars 2.25k forks source link

MAC OSX issue: sed: 1: "tokenizer.perl": undefined label 'okenizer.perl' #68

Closed ShivaliGoel closed 7 years ago

ShivaliGoel commented 7 years ago

When running sed -i "s/$RealBin\/..\/share\/nonbreaking_prefixes//" tokenizer.perl mac users might get an error sed: 1: "tokenizer.perl": undefined label 'okenizer.perl'

Resolved it by:

sed -i '.bak' "s/$RealBin\/..\/share\/nonbreaking_prefixes//" tokenizer.perl

PetrochukM commented 7 years ago

Updating this answer: sed -i '.bak' "s/$RealBin\/..\/share\/nonbreaking_prefixes//" tokenizer.perl

Need to escape the / otherwise you get sed: 1: "s//../share/nonbreaking ...": bad flag in substitute command: 's'

PetrochukM commented 7 years ago

Adding a reference to why you may need to use '.bak': https://stackoverflow.com/questions/5694228/sed-in-place-flag-that-works-both-on-mac-bsd-and-linux

.bak files created are backups before sed was applied. Feel free to delete them!

Other commands rewritten with .bak to be OSX compatible: for l in en de; do for f in data/multi30k/*.$l; do if [[ "$f" != *"test"* ]]; then sed -i '.bak' "$ d" $f; fi; done; done

Removing .bak files in bulk: find . | grep -E "(\.bak$)" | xargs rm -rf

eeric commented 5 years ago

make OpenNMT project audio list and sentences text list, as following: https://github.com/eeric/OpenNMT-py-make-tgt-train.txt/blob/master/openNMT_make_label.py