这是程序员的第一个伟大的美德.我们所有人都曾经在一次或另一次自动化任务中使用了一些丢弃代码.有时需要几秒钟才能完成单线程,有时我们会花费大量时间自动完成两秒钟的任务,然后再也不会再使用它.
你发现什么微小的hack足以重用?为了制作别名而去做?
注意:在回答之前,请检查以确保它不是已经使用BASH或perl/ruby 单线问题的最喜欢的命令行技巧.
我今天在dotfiles.org上发现了这个.这很简单,但很聪明.我自己没有想到这件事感到愚蠢.
### ### Handy Extract Program ### extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via >extract<" ;; esac else echo "'$1' is not a valid file" fi }
这是一个过滤器,它将逗号放在标准输入中的任何大数字的中间.
$ cat ~/bin/comma #!/usr/bin/perl -p s/(\d{4,})/commify($1)/ge; sub commify { local $_ = shift; 1 while s/^([ -+]?\d+)(\d{3})/$1,$2/; return $_; }
我通常最终使用它来获取大数字的长输出列表,我厌倦了计算小数位数.现在而不是看到
-rw-r--r-- 1 alester alester 2244487404 Oct 6 15:38 listdetail.sql
我可以把它当作ls -l | comma
并看到
-rw-r--r-- 1 alester alester 2,244,487,404 Oct 6 15:38 listdetail.sql