В моей клавиатуре уже есть эта функция. Он называется OFF ON
и в нем есть крошечный переключатель. Если кошка сможет щелкнуть этим выключателем, я буду очень впечатлен!
В файлах csv -окна -будут заканчиваться строкой -. Поэтому вам нужно сначала преобразовать их в формат linux -.
dos2unix yourfile
сделает это за вас.
Если у вас нет dos2unix
на вашем ящике, то же самое можно сделать с помощью...
sed "s/\r//" infile >outfile # UnxUtils sed v4.0.7 or higher
tr -d \r <infile >outfile # GNU tr version 1.22 or higher
согласно sed1line.txt .
После преобразования файла в формат Unix -обычные командыsed
-должны работать должным образом.
Следите за пробелами в пустых строках.:sed '/^\s*$/d' yourfile
Все в одном sed -команда:
sed -e 's/\r// -e /^\s*$/d' yourfile > outputfile
Вполне вероятно, что "пустые" строки содержат пробельные символы (возврат каретки является заметным подозреваемым в файлах, написанных программами для DOS или Windows ). Мы можем изменить шаблон, чтобы учесть эти:
sed -i -e '/^[[:space:]]*$/d' \
"${File_Path}"*_{PROD,DEV,UAT}.csv
(Н.Б. также укажите расширение переменной!)
Если вы сначала объединили, а затем удалили пустые строки, это будет немного эффективнее. Вы можете сделать что-то вроде этого:
cat *_PROD.csv > MERGED_PROD.csv
dos2unix MERGED_PROD.csv
perl -i.bak -ne 'print if /\S/' MERGED_PROD.csv
Последний лайнер perl one -хранит копию оригинала MERGED_PROD.csv
в MERGED_PROD.csv.bak
. Вы можете заменить -i.bak
только на -i
в приведенной выше команде, чтобы пропустить резервное копирование.