Arrays in Bash

Submitted by tinhxleev2 on Tue, 10/26/2021 - 07:41

Để báo một array ở bash thì sử dụng 

declare -a ten_array (một array trống)

Hoặc báo luôn

ten_array=(2 3 4)

Lưu ý không có dấu phảy giữa các số 2, 3, 4 trong array.

Một số tính chất cơ bản của array trong bash, như ví dụ ở dưới đây, sẽ trả lại toàn bộ các elements của array.

echo ${ten_array[@]}

Số các elements trong array thì sử dụng

echo ${#ten_array[@]}

Để lấy element nào đó trong array ví dụ element thứ 2

echo ${ten_array[1]}

Numeric variables in Bash

Submitted by tinhxleev2 on Mon, 10/25/2021 - 06:21

Số không được xây sẵn ở shell như ở R hay Python.

Tương tự như grep hay cat thì expr là một chương trình hữu dụng. 

expr 10 + 11

21

Hạn chế của expr đó là nó không ôm được 

expr 12 + 1.5

Việc này có thể giải quyết bằng cách bc (basic calculator), gọi sử dụng bằng bc

bc

echo "12 + 1.5" | bc

bc còn có đối biến là scale để xác định bao nhiêu số sau dấu phảy, như ví dụ dưới đấy lấy 3 số sau dấu phảy. 

Các biến cơ bản trong bash

Submitted by tinhxleev2 on Mon, 10/25/2021 - 06:00

Tương tự như các biến ở ngôn ngữ khác, bạn giao biến bằng dấu =, lưu ý là viết liền mạch, không có dấu cách.

var1="Trang"

echo $var1

Ví dụ khách

ho="lee"

ten="tinh"

echo "Chao anh, " $ho $ten

Lưu ý thể hiện $ trước biến rất quan trọng, nếu không bash sẽ không nhận diện được.

Phân biết "" và ''

"" hiểu được nếu đưa biến vào đó, thì nó sẽ chuyển thành giá trị, trong khi '' sẽ không hiểu biến đưa vào đó.

var1='TINH'

var2='$var1'

echo $var2

Phân biệt với

var2="$var1"

Standard streams & arguments

Submitted by tinhxleev2 on Mon, 10/25/2021 - 04:31

Ở bash scripting có 3 dòng dữ liệu

  • STDIN (standard input) dòng dữ liệu vào.
  • STDOUT (standard output) dòng dữ liệu ra.
  • STDERR (standard errors) lỗi trong chương trình.

Một cách mặc định thì các dòng này đến và ghi ra terminal.

2> dev/null tương ứng với STDERR

1> dev/null tương ứng với STDOUT

Một ví dụ mình lấy từ Datacamp

Bash script anatomy

Submitted by tinhxleev2 on Fri, 10/22/2021 - 03:43

Có vài một tính năng quan trọng. 

  • Bắt đầu với #!/usr/bash, thì sẽ được nhận diện là lệnh bash và sử dụng bash ở usr/bash, nếu bạn cài đặt bash ở bin/bash, sử dụng which bash để xem vị trí. 
  • Các dòng ở giữa bao gồm các lệnh, theo từng dòng
  • Lưu và chạy, thường bash có đuôi là .sh, và để chay thì sử dụng bash ten_script.sh

Ví dụ, đây là toàn bộ một file sh là vidu.sh

#!/usr/bash

echo "Hello"

echo "Goodbye"

Để chạy thì sử dụng

./vidu.sh

Bash Scripting

Submitted by tinhxleev2 on Tue, 10/12/2021 - 10:48

Bash là ngôn ngữ scripting súc tích, siêu nhanh và chắc dùng cho quản lý dữ liệu và file. Bash là công cụ cần thiết để tạo pipelines phân tích trên đám mây, tiện cho người dùng Linux làm việc với dữ liệu lưu ở nhiều file.

- Từ những dòng lệnh đơn giản thành bash script

- Biến và kiểu dữ liệu ở bash scripting

- Control statements (các vòng lặp if, each or for)

- Hàm và scripting automation

bash - bourne again shell (a pun), được phát triển từ những năm 80s nhưng hiện nay rất phổ biến trên Linux và Mac.

Data job automation with cron

Submitted by tinhxleev2 on Tue, 10/12/2021 - 10:08

Lịch chạy (scheduler) chạy các công việc đã lên lịch sẵn. Việc này sẽ giúp bạn tự động chạy những công việc phân tích dữ liệu đơn giản. 

Một số công cụ như Airflow, Luigi, Rundeck, ...

cron là một lựa chọn khá tốt: miễn phí, command-line, đơn giản và tạo riêng được (cài sẵn trên MacOS và Linux).

Cron là gì? là lịch chạy dựa trên thời gian, được cài sẵn trên MacOS hay Linux. 

Để cài trên windows thì sử dụng, Cygwin hoặc thay bằng Windows Task Scheduler

Python on the command line

Submitted by tinhxleev2 on Mon, 10/11/2021 - 08:36

- Python được cài đặt sẵn ở Mac OS và Linux

- Để cài trên win thì bạn làm theo hướng dẫn (Cài đặt và sử dụng Python trên Windows)

- Có thể sử dụng với GUI như Jupyter NoteBook, Spyder, PyCharm

- Tất nhiên Python cũng có thể được truy cập trực tiếp qua Terminal (Windows PowerShell) bằng lệnh python

Một số lệnh cơ bản như

man python

python --version

hoặc như

Pushing data back to database

Submitted by tinhxleev2 on Mon, 10/11/2021 - 04:35

Kéo dữ liệu từ CSDL, thao túng và giờ là đẩy trở lại cơ sở dữ liệu. 

Sử dụng csvsql để thực hiện: 

  • SQL statements trực tiếp trên CSDL
  • Hỗ trợ để tạo bảng và chèn dữ liệu vào CSLD

Một số đối biến (arguments) như 

--insert

--db

--no-inference

--no-constraints 

Đẩy trở lại CSDL syntax (ở đây dùng \ để xuống dòng và làm cho code dễ đọc hơn)

csvsql --db "ten_CSLD" \

           --insert ten_file_csv.csv

 

Tags

Manipulating data using SQL syntax

Submitted by tinhxleev2 on Fri, 10/01/2021 - 03:56

csvsql sử dụng để áp dụng sql statements vào một hay nhiều csv file, csvsql sẽ tạo ra một in-memory CSDL SQL tạm thời lưu file đang được xử lý. Tuy nhiên csvsql chỉ áp dụng cho file có dung lượng nhỏ tới trung bình. (csvsql -h để xem thêm thông tin).

syntax:

csvsql --query "SELECT * FROM TEN_CSLD LIMIT 1" ten_csv_file.csv

sẽ in ra hàng đầu tiên.

Sử dụng với csvlook cho hiển thị rõ ràng hơn

csvsql --query "SELECT * FROM TEN_CSLD LIMIT 1" data/ten_csv_file.csv | csvlook

Lưu kết quả 

Tags

Learing