根据分隔符按列cut(转载)

cut 使用 cut 工具,我们可以将构成文件中数据域的各个列分隔开来。默认的分隔符是制表符,-f 选项可以用来指定希望显示的域。 举例来说,假设一个文本文件 "sample" 有三列,其内容如下所示:

one    two    three
four five six
seven eight nine
ten eleven twelve

现在执行下面的命令:

# cut -f2 sample 

这会返回:

two
five
eight
eleven

如果将这个命令修改成:

# cut -f1, 3 sample 

这会返回下面的不同结果:

one    three
four six
seven nine
ten twelve

这个命令有几个命令行选项。除了 -f 之外,我们还应该熟悉下面两个选项:

  • -c ―― 允许我们指定字符而不是域。
  • -d ―― 允许我们指定其他分隔符,而不是制表符。

____________________________________
cut:两个实际例子 ls -l 命令可以显示某个目录中所有文件的权限、链接个数、属主、组、大小、日期和文件名 ―― 这些都是以空格分隔开的。如果我们对大部分域都不感兴趣,而是只希望了解文件属主的信息,可以使用下面的命令:

# ls -l | cut -d" " -f5
root
562
root
root
root
root
root
root

这个命令只会显示文件属主(第 5 个域),而会忽略其他域。 如果您知道文件属主信息开始的第一个字符的确切位置,可以使用 -c 选项来显示文件属主的第一个字符。假设它是从第 16 个字符开始的,下面这个命令就返回第 16 个字符,这是文件属主名的第一个字符。

# ls -l | cut -c16
r

r
r
r
r
r
r

如果我们再假设大部分用户都使用最多 8 个字符作为自己的用户名,那么我们就可以使用下面的命令:

# ls -l | cut -c16-24 

这会返回用户名域的那些项。 现在假设文件名是从第 55 个字符开始的,但是我们无法确定文件名会连续占用多少个字符,因为有些文件名可能会比其他文件名长很多。解决方案是从第 55 个字符开始,但却不指定结束字符(这意味着我们要截取该行中所有剩余的内容),如下所示:

# ls -l | cut -c55-
a.out
cscope-15.5
cscope-15.5.tar
cscope.out
memo
search_items
test.c
test.s

现在我们来考虑另外一种情况。为了获得系统中所有用户的清单,我们可以从前面使用过的 /etc/passwd 文件中提取第一个域:

# cut -d":" -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator

要搜集用户名及其对应的主目录,我们可以提取第 1 个和第 6 个域的内容:

# cut -d":" -f1,6 /etc/passwd
root:/root
bin:/bin
daemon:/sbin
adm:/var/adm
lp:/var/spool/lpd
sync:/sbin
shutdown:/sbin
halt:/sbin
mail:/var/spool/mail
news:/etc/news
uucp:/var/spool/uucp
operator:/root

cut(转载)

cut的使用方法
  名称:cut   使用权限:所有使用者   用法:cut -cnum1 -num2 filename   说明:显示每行从开头算起 num1 到 num2 的文字。   范例:   shell>> cat example   test2   this is test1   shell>> cut -c0 -6 example ## print 开头算起前 6 个字节   test2   this i

npipe

E:temp>npipe
Usage: npipe [OPTIONS] [INPUT] [OUTPUTS] [FILE FLAGS] [CONVERSIONS]
Input parameters can appear in any order, file flags affect only the next
file/flag/handle/section/object specified on the command line
-t, --tee
        Copy INPUT to STDOUT
-s, --stderrtee
        Copy INPUT to STDERR
-n handle-num, --handle handle-num
        Copy INPUT to handle: handle-num
-e error-file, --error-file error-file
        Send errors to file: error-file
-a append-file, --append-file append-file
        Append INPUT to file: append-file
-i input-file, --input-file input-file
        Read INPUT from file: input-file
-N handle-num, --input-handle handle-num
        Read INPUT from handle: handle-num
-D ntapi-file, --device-input ntapi-file
        Read INPUT from native api/kernel file: ntapi-file
-d ntapi-file, --device-output ntapi-file
        Copy INPUT to native api/kernel file: ntapi-file
-V, -VV, -VVV, -VVVV
        Increasing verbosity, by default only parameter error info
-b buffer-length, --buffer-length buffer-length
        Set the IO buffer size (default is 64k, unless console handle IO
        is taking place, in which case it is 256)
-w, --wait
        Wait for all pipes to be connected to before starting transfer
-B, --block-read
        Read an entire buffer before writing
        Likely only affects pipes or other communication handles
-m max-bytes, --maximum max-bytes
        Read a maximum of max-bytes from INPUT
-c conversion-function, --convert conversion-function
        Converts the buffer using one of the following functions:
        All output commands after this point will be processed after the
        conversion, those before will be unaffected.
        l       ANSI To Lower Case
        L       Unicode To Lower Case
        u       ANSI To Upper Case
        U       Unicode To Upper Case
        c       Clean non-ASCII to space
        c:l     Clean non-ASCII to letter l
        cnum    Clean non-ASCII to ASCII char num
        c-      Delete non-ASCII
        O       ANSI to OEM
        A       OEM to ANSI
        w       ANSI to Unicode
        W       ANSI to Unicode, with BOM
        a       Unicode to ANSI
        s[num]  Swap order of every num bytes, default 2, where num is a power
                of two
        hb[+][-]Binary to Hex by byte [with text dump] [without address dump]
        hw[+][-]Binary to Hex by word [with text dump] [without address dump]
        hd[+][-]Binary to Hex by dword [with text dump] [without address dump]
        hr[+]   Binary to Hex by byte raw dump [with spaces]
-h, -?, --help
        Display this help
-v, --version
        Display version info
--credits
        Display program credits
-P, --progress
        Displays a progress bar on the active console screen buffer (not STDOUT
        or STDERR)
-R, --report
        Print a status report to the error handle (default STDERR, set with -e)
        This is overriden by the progress-bar flag (-P).
-O [queue length], --overlapped [queue length]
        Reads from the input file (not file mapping) using asynchronous
        overlapped IO.
        This will probably improve the overall read/process speed
        This is incompatible with the block-read flag (-B), and file mapping
        inputs (-F)
        'Queue length' defaults to 16, and must be between 1 and 64.
-Q, --overlapped-output
        Outputs to the last output handle in the chain using asynchronous
        overlapped IO.
        This is incompatible with file mapping outputs
        This activates overlapped read IO (-O above)
-X, --always-read
        Read input even if no output specified

Flags which affect the next file on the command line
  -W, --file-share-write
        Open with FILE_SHARE_WRITE
  -F, --file-mapping
        Treat as a named file mapping object (cannot be a pipe)
        For best performance: ensure that the buffer size and the skip offset
        are a multiple of the page size, usually 4k.
  -p, --persistent
        Continue writing to next handle, even if write errors occur
        Read unmapable/unreadable sections as blank
  -S skip-bytes, --skip skip-bytes
        Skip the first skip-bytes bytes of the file, (not pipe)
Flags which affect the next file on the command line (pipe only)
  -z    Force connection to existing pipes rather than create a new pipe
  -Z    Force creation of new pipes rather than connection to existing pipe

Pipe names must be in the format: .pipe[[path]name]
INPUT defaults to STDIN
/ may be used instead of -
Number may be prefixed with 0x for hexadecimal, and postfixed with the following
 SI prefixes: k,M,G,T,P,E
These stand for increasing powers of 2^10 (1024) and can be used to specify kilo
bytes, megabytes, etc.
One letter arguments may be clumped, however only the last argument in the clump
 may have an argument.
eg. -V -V -t -s -b64k <--> -VVtsb64k

Example: npipe -tsVVVVwm64k -FpD DevicePhysicalMemory out -chr -a outputfile -
Z .pipepipe1
Outputs to STDOUT,STDERR. Very verbosely. Waits for all pipes. Read max 64kB (65
536 bytes). Opens DevicePhysicalMemory as a ntapi file mapping object and pers
istently reads from it. Outputs to file: 'out'. Converts output to a raw hexdump
, affects following two output commands. Appends to file: 'outputfile'. Always c
reates, and outputs on pipe: 'pipe1'.

E:temp>npipe -c hr+ -i writer.exe outputs

数钱

Google Reader (100+)

拷,你们太悠闲了吧 (转载)

发信人: shujia2003 (好多牛虱啊), 信区: Joke
标 题: 拷,你们太悠闲了吧
发信站: 水木社区 (Sat Jun 9 11:10:57 2007), 站内

【 以下文字转载自 WorkLife 讨论区 】
发信人: yellowalert (香烧小静静), 信区: WorkLife
标 题: 拷,你们太悠闲了吧
发信站: 水木社区 (Sat Jun 9 11:10:01 2007), 站内

我的一天

7:00 起床
8:00-11:00 数钱
11:00-12:00吃饭、保养指关节
1:00-4:00 数钱
4:00-5:00 发现钱不是自己的,痛苦一小时

拒绝

[(XYS20070606)]一个充分尊重患者知情权的中医师,不仅要告诉患者自己诊断不了癌
症,也治不了癌症,而且应该要求患者必须拿着现代医学的检验单来看病,否则
就拒绝治疗;如果是确知得了癌症的患者来要求治病,也应拒绝,而不能因为患 者坚决要求采用中医方法治疗就以为自己没有责任、可以放心开药了。教师何尝不应如此?

ACM ICPC的魔鬼训练方案

注意,以下内容需要较强心理承受能力,可能导致某些人不舒服。
0.教学关
  要求在规定时间内,如5分钟内完成事先告知的题目,包括读题时间。
  题目包括语法、常用函数、一般算法、一般数据结构、动态规划、贪心等。
  不提供任何参考资料。题目为英文。
  不能在规定时间内完成的不能进入正式关--这是为了队员着想,向下看你就明白了。

1.任务模式
  要求队员在 规定时间内 完成 一定数量的 指定题目。到规定时间,凡未完成题目的,切手指一个。
  直至过关为止。
  手指数少于1的队员将光荣退役--这是为了队员着想,向下看你就明白了。

2.PK模式
  要求队员两人一组结对。同组内的两人分别完成题目。两台计算机上都连接有枪枝指向对方,先完成全部题目者的枪枝击毙对方。
  后完成,不,未完成题目的另一队员自动退役。

3.死斗模式
  要求队员十余人一组。同组内的所有计算机共同接有机枪。先完成题目的激活机枪,"突突突突突突...."。
  除唯一胜利者外,其余队员自动退役。

我自己也觉得恐怖。