Re: [linux-programming] help bash script 2
Saya sudah lihat beberapa yang menggunakan Perl, Python, Java, dan ObjectiveC. KOkon. 2010/1/10 Adi Yatama Adi Guna : > Numpang nanya... di Embeded system sekarang high level lang apa aja yg udah > ada ya? standard nya apa? perl termasuk gk yah? > > Eko Prasetya wrote: >> >> Budy, >> >> Mungkin opini ini benar untuk 5 atau 10 tahun yang lalu, tapi jika >> kita melihat embedded systems sekarang, sudah makin jarang kita >> temukan system yang tidak mampu menjalankan high-level language. >> >> >> >> KOkon. -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] help bash script 2
Numpang nanya... di Embeded system sekarang high level lang apa aja yg udah ada ya? standard nya apa? perl termasuk gk yah? Eko Prasetya wrote: Budy, Mungkin opini ini benar untuk 5 atau 10 tahun yang lalu, tapi jika kita melihat embedded systems sekarang, sudah makin jarang kita temukan system yang tidak mampu menjalankan high-level language. KOkon. 2010/1/8 Budy Wuysang : 2010/1/9 Eko Prasetya : Di real world, kita menggunakan python atau high-level language lainnya :D Tentu saja dengan syarat system yg digunakan sanggup dan punya resource untuk python & language lainnya. Kalau sudah masuk ke system embedded atau small memory system maka sangat kecil kemungkinan anda punya akses ke higher level language, contoh: busybox routers, nokia n810, dll -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] help bash script 2
Budy, Mungkin opini ini benar untuk 5 atau 10 tahun yang lalu, tapi jika kita melihat embedded systems sekarang, sudah makin jarang kita temukan system yang tidak mampu menjalankan high-level language. KOkon. 2010/1/8 Budy Wuysang : > 2010/1/9 Eko Prasetya : >> Di real world, kita menggunakan python atau high-level language lainnya :D > > Tentu saja dengan syarat system yg digunakan sanggup > dan punya resource untuk python & language lainnya. > > Kalau sudah masuk ke system embedded atau small > memory system maka sangat kecil kemungkinan anda > punya akses ke higher level language, > contoh: busybox routers, nokia n810, dll -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] help bash script 2
2010/1/9 Eko Prasetya : > Di real world, kita menggunakan python atau high-level language lainnya :D Tentu saja dengan syarat system yg digunakan sanggup dan punya resource untuk python & language lainnya. Kalau sudah masuk ke system embedded atau small memory system maka sangat kecil kemungkinan anda punya akses ke higher level language, contoh: busybox routers, nokia n810, dll -- Berrylink™ - Makassar one stop BlackBerry® solution @Karebosi Link Blok J-66 -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] help bash script 2
Di real world, kita menggunakan python atau high-level language lainnya :D Eko. 2010/1/8 Budy Wuysang : > > Dalam real world scripting kadang perlu dioptimalkan juga, > dalam hal ini bash punya builtin parameter expansion & > kalau untuk bashv2 (or later) ada $(< file) pengganti $(cat file) > -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] help bash script 2
2010/1/6 Yohanes Nugroho : >-- > Jadi isi file 1.txt itu adalah "2008-01-12"? lalu mau rename 1.xls ke > 2008-01-12? > > misalnya X adalah nama file (1.txt): > > bash$ X=1.txt > bash$ mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')" > > $(xxx) gunanya mengeksekusi perintah x, misalnya jika isi file 1.txt > adalah "hello.doc": > > cat $(cat 1.txt) > > pertama $(cat 1.txt) akan dieksekusi, hasilnya adalah "hello.doc" > > berikutnya: > > cat hello.doc > > akan dieksekusi > > > Jadi perintah > > mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')" > > bisa dipecah jadi 3: > - perintah mv itu sendiri diikuti 2 parameter > - perintah "$(echo $X|sed -e 's/.txt/.xls/')" > - perintah "$(cat $X|sed -e 's/$/.xls/')" > > Tapi pertama saya mengeset Xmenjadi 1.txt dengan > > X=1.txt > > perintah mv sudah jelas. Berikutnya kita lihat yang di dalam $(...) yang > pertama > > echo $X|sed -e 's/.txt/.xls/' > > artinya filter X dengan sed. Perintah sed yang paling sederhana adalah > untuk mereplace. Karena namanya .txt, kita mau ubah menjadi 1.xls. > > Anda bisa mencoba2 sendiri, misalnya: > > echo "ABC" | sed -e 's/A/X/' > hasilnya jadi XBC Kalau tujuannya memang memberi contoh dalam konteks penggunaan sed untuk substitusi ini adalah penjelasan yg ok. Sedikit koreksi untuk menggunakan regex untuk suffix substitution perlu menambahkan '\' sebelum '.' karena '.' berarti any single character echo $X | sed -e 's/\.txt/xls/' Kalau tidak menggunakan '\' maka nama file "fooXtxt" akan menjadi "foo.xls" Dalam real world scripting kadang perlu dioptimalkan juga, dalam hal ini bash punya builtin parameter expansion & kalau untuk bashv2 (or later) ada $(< file) pengganti $(cat file) X=1 mv ${X%.txt}.xls $(<$X).xls -- Berrylink™ - Makassar one stop BlackBerry® solution @Karebosi Link Blok J-66 -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] help bash script 2
Yohanes Nugroho wrote, On 1/6/2010 3:39 PM: 2010/1/6 gdeys...@gmail.com : Sip, dah aku coba, agak bingung sih... klo kira2 bentuknya kek gini : date - 2003-10-12T02:12:45Z Bisa gak klo potongnya dengan cara 7 digit pertama (date - = 7digit) kemudian diambil pada digit ke 8-17 (2003-10-12 = digit ke 8-17) kemudian digit ke 18 sampe terakhir dihapus. Digit disini bisa diartikan sebagai Karakter kalau ingin memotong karakter ke x sampai ke y bisa pakai cut, misalnya: echo 'date - 2003-10-12T02:12:45Z' | cut -c 8-17 hasilnya: 2003-10-12 Metode -f 3- itu artinya memotong pada karakter pertama berupa 3 pada 2003 hal ini gak masalah klo bash script dijalankan pada single command, nantinya saya mo melakukan banyak command, jd saya gak bisa menggunakan cara ini. dan -f 1 -d: adalah memotong karakter setelah : bukan, cut itu bisa bekerja di beberapa mode. Mode yang penting: - cut dari karakter ke x - y (ini harusnya dah jelas) - cut field ke x-y. Dalam contoh echo 'date - 2003-10-12-10:14pm' | cut -f 3- -d' '| cut -f 1 -d: Artinya, potong masukan di karakter spasi (-d' ' artinya pemisahnya adalah spasi). Waktu dipotong, hasilnya adalah: date - 2003-10-12-10:14pm Kita cuma ingin yang terakir saja (baris ke 3, dst) jadi kita pakai -f 3, hasilnya: echo 'date - 2003-10-12-10:14pm' | cut -f 3- -d' ' 2003-10-12-10:14pm Berikutnya kita mau membuang dari titk dua ke kanan, jadi sekarang kita pakai pemisah/delimiter ':'. Kali ini hasilnya dala 2003-10-12-10 14pm Karena kita hanya ingin yang pertama, maka kita perlu cut lagi: echo '2003-10-12-10:14pm' | cut -f 1 -d':' Sehingga jika digabung: echo 'date - 2003-10-12-10:14pm' | cut -f 3- -d' '| cut -f 1 -d: Lalu masalah perintah, saya cuma memberi contoh untuk satu kasus jadi pakai echi. Kalau Anda punya file yang isinya semuanya baris tanggal ya tinggal diganti memakai cat. misalnya cat file | cut -c 8-18 hasilnya akan ke layar, atau cat file | cut -c 8-18 > file.txt Untuk belajar bash, cobalah menjalankan perintah sepotong2 untuk melihat hasilnya. Bisa dengan sed echo 'date - 2003-10-12-10:14pm' | sed -re 's/[^0-9]+([0-9\-]+).*/\1/g' Ini lebih reliable, misalnya ada spasi ekstra, masih bisa jalan. Ini bekerja dengan mengabaikan semua yang bukan digit di awal ([^0-9]+), lalu mengambil semua digit dan tanda - ([0-9\-]+) dan mengabaikan sisanya (.*). Whuah.. yg ini malah bikin saya tambah bingung :d dari man sed mengatakan : 'stream editor for filtering and transforming text' Whuah keknya bisa tuh tapi masih bingung jugak (doh) Iya ini memang lebih kompleks dengan regex gimana cara merename sebuah file dengan menggunakan output dari sebuah command Ini kurang jelas, bisa diperjelas maksud pertanyaannya? misal kek gini : less 1.txt 2008-01-12 > output trus output diatas digunakan untuk ren 1.xls 2008-01-12.xls artinya : ren 1.xls [output] dan command2 diatas dibuat dalam satu script atau satu baris command Jadi isi file 1.txt itu adalah "2008-01-12"? lalu mau rename 1.xls ke 2008-01-12? misalnya X adalah nama file (1.txt): bash$ X=1.txt bash$ mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')" $(xxx) gunanya mengeksekusi perintah x, misalnya jika isi file 1.txt adalah "hello.doc": cat $(cat 1.txt) pertama $(cat 1.txt) akan dieksekusi, hasilnya adalah "hello.doc" berikutnya: cat hello.doc akan dieksekusi Jadi perintah mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')" bisa dipecah jadi 3: - perintah mv itu sendiri diikuti 2 parameter - perintah "$(echo $X|sed -e 's/.txt/.xls/')" - perintah "$(cat $X|sed -e 's/$/.xls/')" Tapi pertama saya mengeset Xmenjadi 1.txt dengan X=1.txt perintah mv sudah jelas. Berikutnya kita lihat yang di dalam $(...) yang pertama echo $X|sed -e 's/.txt/.xls/' artinya filter X dengan sed. Perintah sed yang paling sederhana adalah untuk mereplace. Karena namanya .txt, kita mau ubah menjadi 1.xls. Anda bisa mencoba2 sendiri, misalnya: echo "ABC" | sed -e 's/A/X/' hasilnya jadi XBC Anda juga bisa memakai file: cat fileku | sed -e 's/A/X/' Jika ingin mengganti semua A bukan A pertama, tambahkan g (global) cat fileku | sed -e 's/A/X/g' Berikutnya: cat $X|sed -e 's/$/.xls/' tadi kita pakai echo, tapi sekarang kita pake cat karena ingin isi file 1.txt cat 1.txt|sed -e 's/$/.xls/' $ adalah akhir baris kita mau mengubah akhir baris menjadi .xls (menambah .xls di belakang). Jadi perintahnya menjadi: mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')" Kalau Anda punya banyak file text di satu direktori: for X in *.txt; do mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')"; done Kali ini saya bahas dengan detail karena lagi pengen aja :), tapi mohon Anda belajar dulu perintah2 dasar seperti sed, for, cat, dsb. Supaya lebih mudah, dan saya tidak perlu menjelaskan panjang lebar. Beberapa perintah dasar: cat head tail cut grep sed Pelajari juga karakter2 sp
Re: [linux-programming] help bash script 2
2010/1/6 gdeys...@gmail.com : > > Sip, dah aku coba, agak bingung sih... klo kira2 bentuknya kek gini : > date - 2003-10-12T02:12:45Z > Bisa gak klo potongnya dengan cara 7 digit pertama (date - = 7digit) > kemudian diambil pada digit ke 8-17 (2003-10-12 = digit ke 8-17) kemudian > digit ke 18 sampe terakhir dihapus. > Digit disini bisa diartikan sebagai Karakter kalau ingin memotong karakter ke x sampai ke y bisa pakai cut, misalnya: echo 'date - 2003-10-12T02:12:45Z' | cut -c 8-17 hasilnya: 2003-10-12 > Metode -f 3- itu artinya memotong pada karakter pertama berupa 3 pada 2003 > hal ini gak masalah klo bash script dijalankan pada single command, nantinya > saya mo melakukan banyak command, jd saya gak bisa menggunakan cara ini. > dan > -f 1 -d: adalah memotong karakter setelah : > bukan, cut itu bisa bekerja di beberapa mode. Mode yang penting: - cut dari karakter ke x - y (ini harusnya dah jelas) - cut field ke x-y. Dalam contoh echo 'date - 2003-10-12-10:14pm' | cut -f 3- -d' '| cut -f 1 -d: Artinya, potong masukan di karakter spasi (-d' ' artinya pemisahnya adalah spasi). Waktu dipotong, hasilnya adalah: date - 2003-10-12-10:14pm Kita cuma ingin yang terakir saja (baris ke 3, dst) jadi kita pakai -f 3, hasilnya: echo 'date - 2003-10-12-10:14pm' | cut -f 3- -d' ' 2003-10-12-10:14pm Berikutnya kita mau membuang dari titk dua ke kanan, jadi sekarang kita pakai pemisah/delimiter ':'. Kali ini hasilnya dala 2003-10-12-10 14pm Karena kita hanya ingin yang pertama, maka kita perlu cut lagi: echo '2003-10-12-10:14pm' | cut -f 1 -d':' Sehingga jika digabung: echo 'date - 2003-10-12-10:14pm' | cut -f 3- -d' '| cut -f 1 -d: Lalu masalah perintah, saya cuma memberi contoh untuk satu kasus jadi pakai echi. Kalau Anda punya file yang isinya semuanya baris tanggal ya tinggal diganti memakai cat. misalnya cat file | cut -c 8-18 hasilnya akan ke layar, atau cat file | cut -c 8-18 > file.txt Untuk belajar bash, cobalah menjalankan perintah sepotong2 untuk melihat hasilnya. > >> Bisa dengan sed >> >> echo 'date - 2003-10-12-10:14pm' | sed -re 's/[^0-9]+([0-9\-]+).*/\1/g' >> >> Ini lebih reliable, misalnya ada spasi ekstra, masih bisa jalan. Ini >> bekerja dengan mengabaikan semua yang bukan digit di awal ([^0-9]+), >> lalu mengambil semua digit dan tanda - ([0-9\-]+) dan mengabaikan >> sisanya (.*). >> > > Whuah.. yg ini malah bikin saya tambah bingung :d > dari man sed mengatakan : 'stream editor for filtering and transforming > text' > > Whuah keknya bisa tuh tapi masih bingung jugak (doh) Iya ini memang lebih kompleks dengan regex >>> gimana cara merename sebuah file dengan menggunakan output dari sebuah >>> command >>> >> >> Ini kurang jelas, bisa diperjelas maksud pertanyaannya? >> >> > > misal kek gini : > less 1.txt > 2008-01-12 > output > trus output diatas digunakan untuk > ren 1.xls 2008-01-12.xls > artinya : > ren 1.xls [output] > > dan command2 diatas dibuat dalam satu script atau satu baris command Jadi isi file 1.txt itu adalah "2008-01-12"? lalu mau rename 1.xls ke 2008-01-12? misalnya X adalah nama file (1.txt): bash$ X=1.txt bash$ mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')" $(xxx) gunanya mengeksekusi perintah x, misalnya jika isi file 1.txt adalah "hello.doc": cat $(cat 1.txt) pertama $(cat 1.txt) akan dieksekusi, hasilnya adalah "hello.doc" berikutnya: cat hello.doc akan dieksekusi Jadi perintah mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')" bisa dipecah jadi 3: - perintah mv itu sendiri diikuti 2 parameter - perintah "$(echo $X|sed -e 's/.txt/.xls/')" - perintah "$(cat $X|sed -e 's/$/.xls/')" Tapi pertama saya mengeset Xmenjadi 1.txt dengan X=1.txt perintah mv sudah jelas. Berikutnya kita lihat yang di dalam $(...) yang pertama echo $X|sed -e 's/.txt/.xls/' artinya filter X dengan sed. Perintah sed yang paling sederhana adalah untuk mereplace. Karena namanya .txt, kita mau ubah menjadi 1.xls. Anda bisa mencoba2 sendiri, misalnya: echo "ABC" | sed -e 's/A/X/' hasilnya jadi XBC Anda juga bisa memakai file: cat fileku | sed -e 's/A/X/' Jika ingin mengganti semua A bukan A pertama, tambahkan g (global) cat fileku | sed -e 's/A/X/g' Berikutnya: cat $X|sed -e 's/$/.xls/' tadi kita pakai echo, tapi sekarang kita pake cat karena ingin isi file 1.txt cat 1.txt|sed -e 's/$/.xls/' $ adalah akhir baris kita mau mengubah akhir baris menjadi .xls (menambah .xls di belakang). Jadi perintahnya menjadi: mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')" Kalau Anda punya banyak file text di satu direktori: for X in *.txt; do mv "$(echo $X|sed -e 's/.txt/.xls/')" "$(cat $X|sed -e 's/$/.xls/')"; done Kali ini saya bahas dengan detail karena lagi pengen aja :), tapi mohon Anda belajar dulu perintah2 dasar seperti sed, for, cat, dsb. Supaya lebih mudah, dan saya tidak perlu menjelaskan panjang lebar. Beberapa perintah dasar: cat head tail cut grep sed Pelajari juga karakter2 spesial, se
Re: [linux-programming] help bash script 2
Yohanes Nugroho wrote, On 1/6/2010 11:37 AM: 2010/1/6 gdeys...@gmail.com : melanjutkan "help bash script" sebelumnya, saya mohon bimbingannya untuk dapat membuat bash prog yg secara bertahap sedang saya bikin. (1) aku ada file hasil bernama 1d dari less 1.txt | grep date > 1d isi file 1d ini adalah : date - 2003-10-12-10:14pm Kemudian aku mo rubah file 1d menjadi hanya 2003-10-12-10 saja. Itu artinya akan menghapus [date - ] dan [:14pm] Kira2 pake apa yach ? bisa dicut, misalnya: echo 'date - 2003-10-12-10:14pm' | cut -f 3- -d' '| cut -f 1 -d: cut pertama memotong dari spasi ke kanan, cut kedua memotong sebelum tanda : Sip, dah aku coba, agak bingung sih... klo kira2 bentuknya kek gini : date - 2003-10-12T02:12:45Z Bisa gak klo potongnya dengan cara 7 digit pertama (date - = 7digit) kemudian diambil pada digit ke 8-17 (2003-10-12 = digit ke 8-17) kemudian digit ke 18 sampe terakhir dihapus. Digit disini bisa diartikan sebagai Karakter Metode -f 3- itu artinya memotong pada karakter pertama berupa 3 pada 2003 hal ini gak masalah klo bash script dijalankan pada single command, nantinya saya mo melakukan banyak command, jd saya gak bisa menggunakan cara ini. dan -f 1 -d: adalah memotong karakter setelah : Bisa dengan sed echo 'date - 2003-10-12-10:14pm' | sed -re 's/[^0-9]+([0-9\-]+).*/\1/g' Ini lebih reliable, misalnya ada spasi ekstra, masih bisa jalan. Ini bekerja dengan mengabaikan semua yang bukan digit di awal ([^0-9]+), lalu mengambil semua digit dan tanda - ([0-9\-]+) dan mengabaikan sisanya (.*). Whuah.. yg ini malah bikin saya tambah bingung :d dari man sed mengatakan : 'stream editor for filtering and transforming text' Whuah keknya bisa tuh tapi masih bingung jugak (doh) (2) gimana cara merename sebuah file dengan menggunakan output dari sebuah command Ini kurang jelas, bisa diperjelas maksud pertanyaannya? misal kek gini : less 1.txt 2008-01-12 > output trus output diatas digunakan untuk ren 1.xls 2008-01-12.xls artinya : ren 1.xls [output] dan command2 diatas dibuat dalam satu script atau satu baris command -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] help bash script 2
2010/1/6 gdeys...@gmail.com : > melanjutkan "help bash script" sebelumnya, saya mohon bimbingannya untuk > dapat membuat bash prog yg secara bertahap sedang saya bikin. > > (1) > aku ada file hasil bernama 1d dari less 1.txt | grep date > 1d > isi file 1d ini adalah : > > date - 2003-10-12-10:14pm > > Kemudian aku mo rubah file 1d menjadi hanya 2003-10-12-10 saja. Itu artinya > akan menghapus [date - ] dan [:14pm] > > Kira2 pake apa yach ? bisa dicut, misalnya: echo 'date - 2003-10-12-10:14pm' | cut -f 3- -d' '| cut -f 1 -d: cut pertama memotong dari spasi ke kanan, cut kedua memotong sebelum tanda : Bisa dengan sed echo 'date - 2003-10-12-10:14pm' | sed -re 's/[^0-9]+([0-9\-]+).*/\1/g' Ini lebih reliable, misalnya ada spasi ekstra, masih bisa jalan. Ini bekerja dengan mengabaikan semua yang bukan digit di awal ([^0-9]+), lalu mengambil semua digit dan tanda - ([0-9\-]+) dan mengabaikan sisanya (.*). > (2) > gimana cara merename sebuah file dengan menggunakan output dari sebuah > command Ini kurang jelas, bisa diperjelas maksud pertanyaannya? -- Regards Yohanes http://yohan.es/ -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
[linux-programming] help bash script 2
melanjutkan "help bash script" sebelumnya, saya mohon bimbingannya untuk dapat membuat bash prog yg secara bertahap sedang saya bikin. (1) aku ada file hasil bernama 1d dari less 1.txt | grep date > 1d isi file 1d ini adalah : date - 2003-10-12-10:14pm Kemudian aku mo rubah file 1d menjadi hanya 2003-10-12-10 saja. Itu artinya akan menghapus [date - ] dan [:14pm] Kira2 pake apa yach ? (2) gimana cara merename sebuah file dengan menggunakan output dari sebuah command Untuk sementara ini dulu, (doh) krn masih belajar bash juga nih jd mohon bimbingannya yach... -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis