Hal ini mungkin karena terbatasnya pengetahuan, keenganan atau beranggapan bahwa Unix sebagai suatu yang rumit.
Sebagian perintah Unix telah saya jelaskan di sini. Untuk memudahkan memahami perintah Unix yang lainnya, saya jelaskan berdasarkan contoh-contoh berikut:
man
manual dari perintah sebuah fungsi, untuk keluar dari man tekan q
man tee
NAME
tee - read from standard input and write to standard output and files
SYNOPSIS
tee [OPTION]... [FILE]...
Buatlah dua file yang berisi angka-angka dengan perintah seq. Pada terminal Linux ketik seq 1 1 5 > file1 lalu enter dan seq 2 2 10 > file2 lalu enter.
Cek kedua file
more file1
1
2
3
4
5
more file2
2
4
6
8
10
paste
menggabungkan dua file
paste file1 file2 > file3
more file3
1 2
2 4
3 6
4 8
5 10
cut
mengekstrak bagian dari data i.e. kolom, karakter, dll.
cut -f 1,2 file3
1 2
2 4
3 6
4 8
5 10
cut -f 2 file3
2
4
6
8
10
sort
men-sorting baris-baris dari file
sort -n file1
1
2
3
4
5
sort -r file1
5
4
3
2
1
Buat file4 sbb:
more file4
1 5
2 4
3 3
4 2
5 1
sort -k 2 file4
5 1
4 2
3 3
2 4
1 5
wc
menghitung jumlah baris (-l), jumlah kata (-w) dan jumlah karakter (-c)
wc -l file4
5 file4 .....ada 5 baris dalam file4
cat
concatenate file
cat file1 file2 > file5
more file5
1
2
3
4
5
2
4
6
8
10
uniq
membuang atau memprint nilai yang sama
more file5
1
2
2
3
4
4
5
6
8
10
uniq -u file5
1
3
5
6
8
10
uniq -d file5
2
4
grep
print-out berdasarkan karakter atau kata tertentu
more file5
1
2
2
3
4
4
5
6
8
10
grep '2' file5
2
2
sed -e 's/2/20/g' file5
1
20
20
3
4
4
5
6
8
10
sed '5,10 w junk1' file5 (perintah print baris ke 5 s/d 10 dari file5).
more junk1
4
4
5
6
8
10
tac
mengurutkan secara terbalik
tac file5
10
8
6
5
4
4
3
2
2
1
head
menampilkan bagian awal sebuah file
head -3 file5
1
2
2
tail
menampilkan bagian akhir dari file
tail -3 file5
6
8
10
fold
membatasi jumlah karakter perbaris
contoh berikut membatasi hanya 12 karakter dari file yang bernama test
fold -w 12 test
Fold ' is a
Unix command
used for ma
king a file
with long li
tee
printout di screen dan file secara sekaligus
which
adalah perintah untuk mengetahui lokasi perintah yang bisa dieksekusi
which surange
/home/akmal/seismic_unix/bin/surange
history
printout perintah yang telah dipakai di terminal
history > junk
more junk
1 gv modelfile.eps
2 sh psmerge1a.sh
3 ls
4 gv psmerge1a.eps
5 gv modelfile.eps
6 sh raytracing.sh
Kombinasi berbagai perintah
Contoh: hanya meng-output-kan satu kali dari duplikasi yang terjadi pada kolom2
more input.txt
1 3 2
3 1 7
5 3 4
2 1 1
3 1 4
5 3 6
2 3 8
2 2 8
2 2 5
more output.txt
2 1 1
2 2 5
1 3 2
sort -k 2n < input.txt| awk -F\ '{ print NR, $0, count[$2]++ }' | awk '$5 == 0 '| awk '{print $2,$3,$4}' > output.txt
sort -k 2n < input.txt
2 1 1
3 1 4
3 1 7
2 2 5
2 2 8
1 3 2
2 3 8
5 3 4
5 3 6
sort -k 2n < input.txt| awk -F\ '{ print NR, $0, count[$2]++ }'
1 2 1 1 0
2 3 1 4 1
3 3 1 7 2
4 2 2 5 0
5 2 2 8 1
6 1 3 2 0
7 2 3 8 1
8 5 3 4 2
9 5 3 6 3
sort -k 2n < input.txt| awk -F\ '{ print NR, $0, count[$2]++ }' | awk '$5 == 0 '
1 2 1 1 0
4 2 2 5 0
6 1 3 2 0
sort -k 2n < input.txt| awk -F\ '{ print NR, $0, count[$2]++ }' | awk '$5 == 0 '| awk '{print $2,$3,$4}' >output.txt
more output
2 1 1
2 2 5
1 3 2
more data.txt
5 74904317 0.37733
5 74904317 0.37086
1 30166376 0.01567
1 30166376 0.01209
19 36070251 0.01055
19 36070251 0.00406
19 36070251 0.00041
5 74866563 0.38506
5 74866563 0.38083
Dalam hal ini saya akan mencari nilai min dan max dari kolom ke-2
Memprint satu kali untuk setiap perulangan yang berada pada kolom ke-1
1 30166376 0.01567
19 36070251 0.01055
5 74866563 0.38506
Mengubah format:
2 4.2e+09
3 2.2e+09
4 1.8e+09
5 1.1e+09
6 1.3e+09
2 4200000000
3 2200000000
4 1800000000
5 1100000000
6 1300000000
Format general ke e+
2 4200000000
3 2200000000
4 1800000000
5 1100000000
2 4.2e+09
3 2.2e+09
4 1.8e+09
5 1.1e+09
Selengkapnya:
printf "%d", 99/2 49
printf "%e", 99/2 4.950000e+01
printf "%f", 99/2 49.500000
printf "%6.2f", 99/2 49.50
printf "%g", 99/2 49.5
printf "%o", 99/2 61
printf "%06o", 99/2 000061
printf "%x", 99/2 31
printf " |%s |", "January" |January |
printf " |%10s |", "January" | January |
printf " |%-10s |", "January" |January |
printf " |%.3s |", "January" |Jan |
printf " |%10.3s |", "January" | Jan |
printf " |%-10.3s |", "January" |Jan |
printf "%%" %
Tab untuk memisahkan kolom:
5 74904317 0.37086
1 30166376 0.01567
1 30166376 0.01209
19 36070251 0.01055
19 36070251 0.00406
19 36070251 0.00041
5 74866563 0.38506
5 74866563 0.38083
Setelah dipisahkan:
5 74904317 0.37086
1 30166376 0.01567
1 30166376 0.01209
19 36070251 0.01055
19 36070251 0.00406
19 36070251 0.00041
5 74866563 0.38506
5 74866563 0.38083
12 34 12
212 11 98
454 82 111
121 233 111
434 345 11
434 32 12
565 22 888
56 8776 888
grep from kolom 1
awk -F"|" '$1 ~ /565/{print}' data.txt
565 22 888
Count number of occurance in column 3
numeric:
awk '{arr[$3]++} END {for(i in arr) print i,arr[i]}' data.txt | sort -n -k2
11 1
98 1
111 2
12 2
888 2
string:
awk '{count[$3]++}END{for(j in count) print j,"("count[j]" prizes)"}' FS=: data.txt
sort based on col 2 then 3
sort -k 2,2 -k3,3n data.txt
212 11 98
565 22 888
121 233 111
434 32 12
12 34 12
434 345 11
454 82 111
56 8776 888
sort based on col 1 then 2 then 3
sort -k1,1 -k2,2 -k3,3n data.txt
12 34 12
121 233 111
212 11 98
434 32 12
434 345 11
454 82 111
56 8776 888
565 22 888
col1 (Ascending) col2 (Descending) col3 (Ascending)
sort -n -k1,1 -k2,2r -k3,3 data.txt
cummulative sum in column 1
awk 'BEGIN {sum=0} {sum= sum+$0; print sum}' data.txt
in octave or matlab: cumsum
miscellaneous
Xlib: connection to "xxxxxxxxxxxxxxxxxxx" refused by server
Xlib: No protocol specified
xauth list
setenv DISPLAY xxxxxxxxxxxxxxxxxxxxxxx
xauth add xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx
read segy data from tape
#!/bin/sh
folder="/path/folder_you_want_to_put_data"
\rm input_file.segy IL*_gathers.segy;
rsh machine_name mt -t /dev/IBMtape0n rewind
rsh machine_name "cd $folder; pwd; dd ibs=65000 if=/dev/IBMtape0n of=input_file.segy"
#rsh machine_name mt -t /dev/IBMtape0 eject
menggabungkan file, lalu mengambil kolom tertentu
pr -m -t -s\ file1 file2 | gawk '{print $4,$5,$6,$1}'
Mencari lokasi baris-ke dari sebuah file dengan katakunci:
sed -n '/katakunci/=' filein
Koneksi mesin lain
ssh -X LinuxID@Linuxmachine
No comments:
Post a Comment