Pertanyaan skrip shell [ditutup]

-4

Apa arti dari ketiga perintah shell ini?

# 1
grep "[a-zA-Z]"

# 2
sort -u

# 3
awk -F"," '{if($4 == "2" && $6 == "UPD-LOC" && $7 == "OUT"){ 
            print $11,$12,$18,$23,$11$12 
           }}' $txnfile_fail | sort | tr ' ' ',' >$TEMP_FOLDER/txnFailOut-$1.txt

sumber

Jawaban:

1

Tidak yakin mengapa ini harus dihapus untuk dilupakan, tapi tetap saja.

grep "[a-zA-Z]"

grep adalah alat pencarian, menggunakan ekspresi reguler. Ekspresi spesifik ini mencari rentang karakter (dalam kurung) huruf kecil (az) atau huruf besar (AZ). Jadi, itu akan cocok dengan satu huruf ASCII pada input.

CATATAN Karena baris ini tidak mengatakan file (atau pipa) untuk dibaca, ini akan dibaca dari stdin sampai Anda mengakhirinya dengan Ctrl-D. Berarti terminal Anda akan nampak hang, meskipun sedang mencari.

semacam -u

Sortir stdin (lihat catatan di atas) lalu gabungkan garis-garis yang bersebelahan menjadi satu baris, artinya hanya daftar garis-garis unik

awk -F"," '{if($4 == "2" && $6 == "UPD-LOC" && $7 == "OUT"){ 
            print $11,$12,$18,$23,$11$12 
           }}' $txnfile_fail | sort | tr ' ' ',' >$TEMP_FOLDER/txnFailOut-$1.txt

awk adalah alat yang berguna untuk memanipulasi file teks, di suatu tempat antara bash + grep dan perl dalam kompleksitas dan sakit kepala. Ini menggunakan kekuatan awk untuk membaca kolom,

Jalankan alat awk pada file bernama dalam variabel $ txnfile_fail. The -Fbendera untuk pembatas lapangan, jadi yang dipisahkan koma file input. Periksa apakah bidang ke-4 adalah 2, jika bidang ke-6 adalah 'UPD-LOC', dan bidang ke-7 adalah 'KELUAR'. Jika demikian, buang bidang 11, 12, 18, 11, 12. Kemudian urutkan keluaran, terjemahkan spasi menjadi koma, dan kemudian buang ke file $ TEMP_FOLDER / txnFailOut- $ 1.txt.

Jadi, ini memfilter file csv, hanya mencetak kolom tertentu, mengurutkan input yang difilter dan membuang ke file yang berbeda. Anehnya baik-baik saja dengan spasi sebagai pemisah keluaran, kemudian menerjemahkan spasi ke karakter yang berbeda. Anda dapat mengatur pemisah dalam awk dengan pernyataan awk 'OFS =,'.

Homolka yang kaya
sumber
0

Kata pertama dari setiap item yang tercantum adalah nama perintah.

Anda dapat menggunakan manual untuk setiap perintah untuk mendapatkan ide yang lebih baik tentang apa yang mereka lakukan. Misalnya man grepmemunculkan manual untuk grepperintah.

Teks yang tercantum setelah nama perintah adalah argumen yang diteruskan ke perintah, yang memberikan instruksi lebih lanjut tentang apa yang harus dilakukan. Anda dapat mempelajari lebih lanjut tentang berbagai argumen untuk setiap perintah melalui manhalaman. Itu akan membantu dengan dua yang pertama.

The awkperintah yang ditunjukkan adalah tricker sedikit, tapi ada yang lebih rumit panduan pengguna tersedia secara online.


sumber