给Shell编程者 2

AWolfBoy 2004-10-23 03:27:55
转贴 : awk与unix 命令等价代码
http://www.chinaunix.net 作者:飞灰橙 发表于:2004-04-30 15:52:27

前面ad发了个sed的http://www.chinaunix.net/jh/24/307045.html,
弄个awk的练练手,写得不好,代码比较冗长
cat awk '{print}' 
cat -s awk '{blank = NF == 0 ? ++blank : 0; if (blank <= 1) print;}'
tac awk '{t[NR] = $0;}END{for (i = NR; i >= 1; i--) print t[i];}'
grep patten awk '/patten/{print}'
grep -v patten awk '! /patten/{print}'
head awk 'NR <= 10 {print}' 24.sh
head -1 awk '{print; exit; }' 24.sh
tail awk '{t[n++ % 10] = $0}END{for (i = 0; i < 10; i++) print t[n++ % 10];}'
tail -1 awk '{t = $0}END{print t}'
cut -c 10 awk '{print substr($0, 10, 1)}'
cut -d: -f4 awk -F: '{if (NF > 1) print $4; else print;}'
tr A-Z a-z awk '{print tolower($0);}' se.sh
tr a-z A-Z awk '{print toupper($0);}' se.sh
tr -s ' ' awk '{print gensub(" +", " ", "g")}'
tr -d '\012' awk '{printf "%s", $0}'
wc -l awk 'END{printf "% 7d\n", NR-1}'
uniq awk '{if (NR == 1 || ln != $0) print; ln = $0;}'
rev awk '{l = ""; for (i = length($0); i > 0; i--) printf "%c", substr($0, i, 1); print "";}'
basename awk -F'/' '{print $NF}'
dirname awk -F'/' '{if (NF <= 1) printf "."; else {OFS="/"; $NF=""; printf "%s", substr($0, 1, length($0) - 1);}}'
xargs awk '{printf "%s ", $0}END{print}'
paste -sd: awk 'NR > 1{printf ":%s", $0}'
cat -n awk '{printf "% 6d %s\n", NR, $0}'
grep -n awk '/ss/{print NR":"$0}'
cp orig new awk '{print > "new"}' orig



...全文
168 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧