Вы спрашивали
if there is any way to connect to oracle without "cx_oracle" and without installing Instant client
В документации , на которую ссылается сообщение об ошибке , четко указано
ODPI-C requires Oracle Client libraries, which are found in Oracle Instant Client, or an Oracle Database installation, or in a full Oracle Client installation.
Если у вас нет одного из этих трех параметров конфигурации, у вас не будет libclntsh.so
, что, в свою очередь, означает, что вы не сможете программно подключиться к базе данных Oracle.
Как было предложено в комментарии вам может помочь вопрос/ответ StackOverflow, Python3 cx -Библиотека клиента Oracle Oracle не может быть загружена :«libclntsh.so» на Linux , хотя это предполагает, что вы действительно установили один из трех компонентов, которые, по-видимому, не хотите устанавливать.
Это похоже на домашнее задание!
Подсчет строк, в которых длина столбца 1 больше 3
awk 'length($1)>3 {c++} END {print c+0}'
Отбрасывать строки, в которых длина столбца 1 не равна 5
awk 'length($1)==5'
Отбрасывать строки, в которых длина столбца 1 не равна 5 и содержит нецифру
awk 'length($1)==5 && $1 !~ /[^0-9]/'
Используйте оболочку, чтобы направить вывод в новый файл.
Редактировать :Первоначально файл представлял собой файл, разделенный табуляцией, теперь он был отредактирован в формате CSV. Это означает, что решения должны быть
awk -F, 'length($1)>3 {c++} END {print c+0}'
awk -F, 'length($1)==5'
awk -F, 'length($1)==5 && $1 !~ /[^0-9]/'
Чтобы подсчитать количество строк, первое поле которых, разделенное запятой -, длиннее трех символов, удалите заголовок и все строки, первое поле которых не превышает четырех символов, а затем подсчитайте оставшиеся строки.
sed -e '1d' -e '/^[^,]\{4,\},/!d' file | wc -l
Команда d
удаляет строку, адресованную предшествующим адресом (либо номером строки, либо регулярным выражением ). Если предыдущее условие не выполнено, !d
инициирует удаление.
Выражение ^[^,]\{4,\},
соответствует четырем или более не -запятым в начале строки, за которыми следует запятая.
Удалите все строки, первое поле которых не содержит точно пять цифр, сохранив при этом заголовок и сохранив результат в новый файл.
sed -e '1b' -e '/^[[:digit:]]\{5\},/!d' file >newfile
Мы используем команду b
для перехода к концу скрипта для первой строки ввода, пропуская вперед к следующему циклу. Это гарантирует, что строка заголовка будет напечатана, а не удалена.
Выражение ^[[:digit:]]\{5\},
соответствует ровно пяти цифрам в начале строки, за которыми следует запятая.