Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # see also `man awk`
- awk '{ print }' /etc/passwd | head
- # root:x:0:0:root:/root:/bin/bash
- # daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
- # bin:x:2:2:bin:/bin:/usr/sbin/nologin
- # sys:x:3:3:sys:/dev:/usr/sbin/nologin
- # sync:x:4:65534:sync:/bin:/bin/sync
- # games:x:5:60:games:/usr/games:/usr/sbin/nologin
- # man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
- # lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
- # mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
- # news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
- awk '{ print $0 }' /etc/passwd | head
- # root:x:0:0:root:/root:/bin/bash
- # daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
- # bin:x:2:2:bin:/bin:/usr/sbin/nologin
- # sys:x:3:3:sys:/dev:/usr/sbin/nologin
- # sync:x:4:65534:sync:/bin:/bin/sync
- # games:x:5:60:games:/usr/games:/usr/sbin/nologin
- # man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
- # lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
- # mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
- # news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
- head /etc/passwd | awk '{ print $0 }'
- # root:x:0:0:root:/root:/bin/bash
- # daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
- # bin:x:2:2:bin:/bin:/usr/sbin/nologin
- # sys:x:3:3:sys:/dev:/usr/sbin/nologin
- # sync:x:4:65534:sync:/bin:/bin/sync
- # games:x:5:60:games:/usr/games:/usr/sbin/nologin
- # man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
- # lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
- # mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
- # news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
- head /etc/passwd | awk '{ print $1 }'
- # root:x:0:0:root:/root:/bin/bash
- # daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
- # bin:x:2:2:bin:/bin:/usr/sbin/nologin
- # sys:x:3:3:sys:/dev:/usr/sbin/nologin
- # sync:x:4:65534:sync:/bin:/bin/sync
- # games:x:5:60:games:/usr/games:/usr/sbin/nologin
- # man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
- # lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
- # mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
- # news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
- head /etc/passwd | awk -F: '{ print $1 }'
- # root
- # daemon
- # bin
- # sys
- # sync
- # games
- # man
- # lp
- # mail
- # news
- head /etc/passwd | awk -F: '{ printf "%-20s%s\n", $1, $7 }'
- # root /bin/bash
- # daemon /usr/sbin/nologin
- # bin /usr/sbin/nologin
- # sys /usr/sbin/nologin
- # sync /bin/sync
- # games /usr/sbin/nologin
- # man /usr/sbin/nologin
- # lp /usr/sbin/nologin
- # mail /usr/sbin/nologin
- # news /usr/sbin/nologin
- head /etc/passwd | awk 'BEGIN { FS=":" } { print $1 }'
- # root
- # daemon
- # bin
- # sys
- # sync
- # games
- # man
- # lp
- # mail
- # news
- awk 'BEGIN { print ARGC }' /etc/passwd
- # 2
- awk 'BEGIN { for (i = 0; i < ARGC; i++) print ARGV[i] }' /etc/passwd
- # awk
- # /etc/passwd
- awk '
- BEGIN {
- for (i = 0; i < ARGC; i++) {
- print ARGV[i]
- }
- }' /etc/passwd
- # awk
- # /etc/passwd
- awk 'BEGIN { print ENVIRON["HOME"] }'
- # /home/gokce
- head /etc/passwd | awk -F: '{ printf "%d - %d\n", NR, NF }'
- # 1 - 7
- # 2 - 7
- # 3 - 7
- # 4 - 7
- # 5 - 7
- # 6 - 7
- # 7 - 7
- # 8 - 7
- # 9 - 7
- # 10 - 7
- cat /etc/passwd | awk -F: '/bash/'
- # root:x:0:0:root:/root:/bin/bash
- # gokce:x:1000:1000:gokce,,,:/home/gokce:/bin/bash
- cat /etc/passwd | awk -F: '/bash/ { print $0 }'
- # root:x:0:0:root:/root:/bin/bash
- # gokce:x:1000:1000:gokce,,,:/home/gokce:/bin/bash
- cat /etc/passwd | awk -F: '/bash/ { print $1 }'
- # root
- # gokce
- cat /etc/passwd | awk -F: '$7 == "/bin/bash" { print $1 }'
- # root
- # gokce
- cat /etc/passwd | awk -F: 'NR == 1, NR == 5 { print $1 }'
- # root
- # daemon
- # bin
- # sys
- # sync
- cat /etc/passwd | awk '
- { numlines++ }
- END { print numlines }'
- # 41
- cat /etc/passwd | awk -F: '
- { shell[$7]++ }
- END { for (i in shell) printf "%-20s%d\n", i, shell[i] }'
- # /bin/sync 1
- # /bin/bash 2
- # /bin/false 22
- # /usr/sbin/nologin 16
- awk 'BEGIN {
- "date" | getline line
- print line
- close("date")
- }'
- # Thu Oct 13 21:04:58 EEST 2016
- awk 'BEGIN {
- cmd = "date -u"
- cmd | getline line
- print line
- close(cmd)
- }'
- # Thu Oct 13 18:05:03 UTC 2016
- awk 'BEGIN {
- print "hello world" | "cat"
- close("cat")
- }'
- # hello world
- awk 'BEGIN {
- print "ls -l /bin/echo" | "sh"
- close("sh")
- }'
- # -rwxr-xr-x 1 root root 31376 Feb 18 2016 /bin/echo
- awk 'BEGIN { system("ls -l /bin/echo") }'
- # -rwxr-xr-x 1 root root 31376 Feb 18 2016 /bin/echo
- awk '
- BEGIN {
- print fact(5)
- }
- function fact(n) {
- if (n < 2)
- return 1;
- return n * fact(n-1);
- }'
- # 120
- # mean
- seq 100 | shuf | head | awk '
- { sum += $0 }
- END { print sum / NR }'
- # 72.7
- # escape '$' characters inside double quotes for aliasing
- alias mean="awk '{ sum += \$0 } END { print sum / NR }'"
- seq 100 | shuf | head | mean
- # 49.2
- # stdev
- seq 100 | shuf | head | awk '
- { sum += $0; sumsq += $0^2 }
- END { print sqrt(NR * sumsq - sum^2) / NR; }'
- # 29.3966
- # escape '$' characters inside double quotes for aliasing
- alias stdev="awk '{ sum += \$0; sumsq += \$0^2 } END { print sqrt(NR * sumsq - sum^2) / NR; }'"
- seq 100 | shuf | head | stdev
- # 27.7027
- # from 20 random words generate a text with 100 random words
- shuf /usr/share/dict/words | head -20 | shuf -r | head -100 | fmt
- # updating poignantly poignantly lobotomies Intel's seesaw's baas vise's
- # hurray's Intel's Grampians Grampians settlement whooshing intertwines
- # Terrell lobotomies baas tiny Turing hurray's lobotomies hurray's idea's
- # underwriter's Grampians seesaw's Turing Intel's whooshing vise's idea's
- # Terrell baas underwriter's whooshing Turing Gorbachev freshets pluckier
- # settlement lobotomies baas Terrell settlement pluckier freshets pluckier
- # underwriter's Terrell baas lobotomies pluckier poignantly intertwines
- # tiny idea's settlement pluckier tiny Terrell baas settlement pluckier
- # idea's freshets vise's updating Grampians underwriter's settlement
- # intertwines hurray's poignantly vise's underwriter's updating baas idea's
- # intertwines Turing underwriter's underwriter's Grampians vise's baas
- # Terrell Terrell poignantly Grampians hurray's seesaw's pluckier Turing
- # lobotomies poignantly Terrell freshets underwriter's tiny
- # word frequency (adapted from 'Effective awk Programming' by 'Arnold Robbins')
- shuf /usr/share/dict/words | head -20 | shuf -r | head -100 | fmt | awk '
- {
- $0 = tolower($0)
- gsub(/[^[:alnum:]_[:blank:]]/, "", $0)
- for (i = 1; i <= NF; i++) {
- freq[$i]++
- if (maxlen < length($i)) {
- maxlen = length($i)
- }
- }
- }
- END {
- sort = "sort -k2 -rn | head -n 5"
- for (word in freq) {
- printf "%-*s%d\n", maxlen, word, freq[word] | sort
- }
- close(sort)
- }'
- # walmarts 11
- # hogs 7
- # trousseaux 6
- # trees 6
- # priming 6
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement