স্কেলাইট থেকে সিএসভিতে শেল স্ক্রিপ্ট ব্যবহার করে রফতানি করুন


89

আমি CSV ফাইলে একটি স্ক্লাইট কোয়েরি রফতানি করার জন্য একটি শেল স্ক্রিপ্ট তৈরি করছি, ঠিক এর মতো:

 #!/bin/bash
./bin/sqlite3 ./sys/xserve_sqlite.db ".headers on"
./bin/sqlite3 ./sys/xserve_sqlite.db ".mode csv"
./bin/sqlite3 ./sys/xserve_sqlite.db ".output out.csv"
./bin/sqlite3 ./sys/xserve_sqlite.db "select * from eS1100_sensor_results;"
./bin/sqlite3 ./sys/xserve_sqlite.db ".exit"

স্ক্রিপ্টটি কার্যকর করার সময় আউটপুট স্ক্রিনে উপস্থিত হয়, "আউট সিএসভি" তে সংরক্ষণ করার পরিবর্তে। কমান্ড লাইনের সাহায্যে এটি একই পদ্ধতিতে কাজ করছে, তবে কেন জানি শেল স্ক্রিপ্ট ফাইলটিতে ডেটা রফতানি করতে ব্যর্থ হয়।

আমি কি ভুল করছি?

উত্তর:


125

sqlite3

sqlite3প্রতিটি লাইনের জন্য আপনার আলাদা কল রয়েছে ; আপনার selectরান সময় , আপনার .out out.csvভুলে যাওয়া হয়েছে।

চেষ্টা করুন:

#!/bin/bash
./bin/sqlite3 ./sys/xserve_sqlite.db <<!
.headers on
.mode csv
.output out.csv
select * from eS1100_sensor_results;
!

পরিবর্তে.

sh / bash পদ্ধতি

আপনি হয় পুনর্নির্দেশ দিয়ে আপনার স্ক্রিপ্ট কল করতে পারেন:

$ your_script >out.csv

অথবা আপনি আপনার স্ক্রিপ্টে প্রথম লাইন হিসাবে নিম্নলিখিতটি সন্নিবেশ করতে পারেন:

exec >out.csv

পূর্ববর্তী পদ্ধতিটি আপনাকে বিভিন্ন ফাইলের নাম নির্দিষ্ট করতে দেয়, তবে পরবর্তী ফাইলটি নির্দিষ্ট ফাইলের নামের সাথে আউটপুট দেয়। উভয় ক্ষেত্রেই লাইন .output out.csvউপেক্ষা করা যেতে পারে।


দুর্দান্ত, ধন্যবাদ, এখন এটি কাজ করছে! (এবং এটি ">" এর পরিবর্তে ">>" প্রয়োজন, তবে আমি লিনাক্সে একটি নব্যবী: ডি)
রোরো

4
যদি এখানে কোনও উত্তর আসলে আপনার প্রশ্নের উত্তর দেয় তবে আপনার উত্তরের মোট ভোটের নীচে চেক চিহ্নটি ক্লিক করা উচিত (এটি আপনার কাছে হালকা ধূসর হওয়া উচিত)। উত্তর হিসাবে এটি চিহ্নিত করে।
tzot

বিলম্বের জন্য দুঃখিত, আমি একটি
সত্যই

<<! ... !আমার যা প্রয়োজন ছিল ঠিক তা-ই। ধন্যবাদ
রোস্তিস্লাভ দ্রুজচেনকো

173

ডট কমান্ডের পরিবর্তে আপনি sqlite3 কমান্ড বিকল্পগুলি ব্যবহার করতে পারেন:

sqlite3 -header -csv my_db.db "select * from my_table;" > out.csv

এটি এটিকে ওয়ান-লাইনারে পরিণত করে।

এছাড়াও, আপনি একটি স্কয়ার স্ক্রিপ্ট ফাইল চালাতে পারেন:

sqlite3 -header -csv my_db.db < my_script.sql > out.csv

sqlite3 -helpউপলব্ধ বিকল্পগুলির তালিকা দেখতে ব্যবহার করুন।


4
অনেক, আরও ভাল ... এটি গ্রহণযোগ্য সমাধান হওয়া উচিত! KISS :-)
pvandenberk

4
এই সমাধানটি উইন্ডোগুলিতেও কাজ করবে, মেনে নেওয়া হবে যে স্ক্যালাইট 3 আপনার পথে বা একই ডিরেক্টরিতে রয়েছে।
অ্যান্থেসেস

7

আমি সম্প্রতি একটি শেল স্ক্রিপ্ট তৈরি করেছি যা একটি ডিবি ফাইল থেকে টেবিলগুলি নিতে এবং সেগুলি সিএসভি ফাইলে রূপান্তর করতে সক্ষম হবে।

https://github.com/darrentu/convert-db-to-csv

আমার স্ক্রিপ্টে আমাকে নির্দ্বিধায় কোন প্রশ্ন জিজ্ঞাসা করুন :)


4
এটি আমাকে সাহায্য করেছিল। আপনার উত্তরটিতে আপনার 10 টি লাইন কোডের কপি-পেস্ট করা উচিত, তারপরে আমি ইতিমধ্যে দেওয়া আপভোটটি আরও ন্যায়সঙ্গত বোধ করবে।
mxMLnkn

স্ক্রিপ্টটিতে টেবিলের নামের চারপাশে উদ্ধৃতি নেই (টেবিলের নামটি ড্যাশ হলে এটি একটি ত্রুটি ছুড়ে দেয়)
এরিক এফ।

0

যদিও প্রশ্নটি শেল স্ক্রিপ্ট সম্পর্কে, আমি মনে করি এটি স্কেলাইট 3 ডাটাবেস থেকে সিএসভি ফাইলে ডেটা স্থানান্তরের বিষয়ে উদ্বিগ্ন যারা তাদের কয়েকজনকে সহায়তা করবে think

এসকিউএলাইট ম্যানেজার এক্সটেনশানটি ব্যবহার করে ফায়ারফক্স ব্রাউজারটি দিয়ে এটি করার একটি খুব দৃin়তম উপায় আমি পেয়েছি।

ফায়ারফক্সে কেবলমাত্র আপনার স্ক্লাইট ডাটাবেস ফাইলের সাথে সংযুক্ত করুন (এসকিউলাইট ম্যানেজার -> সংযুক্ত ডাটাবেস) এবং তারপরে সারণী -> সারণি রফতানি করুন। আপনাকে আরও কয়েকটি বিকল্প দেওয়া হবে যা আপনি ক্লিক করতে পারেন এবং চেষ্টা করতে পারেন ....

শেষে আপনি যে সারণিটি রফতানি করার জন্য বেছে নিয়েছেন সেটির সাথে আপনি একটি সিএসভি ফাইল পাবেন।


0
Using command line for Linux:

user@dell-Admin: sqlite3 #activate your sqlite database first
sqlite> .tables #search for tables if any available if already created one.
sqlite> .schema #if you want to check the schema of the table.

# once you find your table(s), then just do the following:

sqlite> .headers on   #export along with headers (column names)
sqlite> .mode csv     #file type is csv
sqlite> .output example.csv   #you want to provide file name to export
sqlite> SELECT * from events;    #If entire table is needed or select only required
sqlite> .quit    #finally quit the sqlite3

উদাহরণস্বরূপ সিএসভি ফাইলের জন্য এখন আপনার সিস্টেমে অনুসন্ধান করুন এবং আপনি এটি পাবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.