Skip navigation.

极湖

无不用其“极”

Posts tagged with "翻译整理"

Unix 下文本操作的利器

, ,

■ cut

cut 命令可用来截取文本中特定的字段。

(例)
$ cut -c1 file1.txt
截取文件 file1.txt 各行的第1个字符并输出

$ cut -c1-10 file1.txt
截取文件 file1.txt 各行的第1到第10个字符并输出

$ cut -c20- file1.txt
截取文件 file1.txt 各行第20个字符至末尾的字符串并输出

$ cut -d: -f1 file1.txt
截取文件 file1.txt 各行以冒号( : )分割的第1个字符串

$ cut -d' ' -f1,2 file1.txt
截取文件 file1.txt 各行以空格( )分割的第1和第2个字符串

■ paste

paste 命令可用来拼接两个文本文件中的数据。

(例)
文件 file1.txt 的内容:
1
2
3

文件 file2.txt 的内容:
One
Two
Three

$ paste file1.txt file2.txt
显示结果:
1 One
2 Two
3 Three

$ paste -d, file1.txt file2.txt
显示结果:
1,One
2,Two
3,Three

paste -s 可以把一个文件的各行拼接成一整行。

$ paste -s file1.txt
显示结果:
1 2 3

■ sed

sed 是一个数据流编辑器。

(例)
$ sed 's/Unix/UNIX/' file1.txt
把文件 file1.txt 中的字符串 Unix 替换成 UNIX 并输出

$ sed -n '1,2p' file1.txt
  输出文件 file1.txt 的头两行

$ sed -n '/UNIX/p' file1.txt
  输出文件 file1.txt 中包含 UNIX 的行

$ sed '1,2d' file1.txt
  删除文件 file1.txt 的头两行并输出

$ sed '/UNIX/d' file1.txt
  删除文件 file1.txt 中包含 UNIX 的行并输出

■ tr

tr 命令用作字符串变换的过滤器。

(例)
$ tr e x < file1.txt
  将文件 file1.txt 内的字符'e'替换成字符'x'并输出

$ tr '[a-z]' '[A-Z]' < file1.txt
  将文件 file1.txt 内的小写字母替换大写字母并输出

$ tr ' ' '\11' < file1.txt
  将文件 file1.txt 内的空格替换为Tab(缩进)并输出

$ tr -s ' ' '\11' < file1.txt
  将文件 file1.txt 内连续的空格替换为一个Tab(缩进)并输出

$ tr -d ' ' < file1.txt
  删除文件 file1.txt 内所有空格并输出

■ grep

grep命令用于在一个或多个文件中查找符合特定模式的行。

(例)
$ grep '[A-Z]' file1.txt
  在文件 file1.txt 中查找包含英文大写字母的行并输出

$ grep '[A-Z]...[0-9]' file1.txt
  在文件 file1.txt 中查找包含英文大写字母开头并以数字结尾的行并输出

$ grep -v 'UNIX' file1.txt
  在文件 file1.txt 中查找不包含 UNIX 的行并输出

$ grep -l 'Unix' *.txt
  在 *.txt 中查找包含 Unix 的文件并输出文件名

$ grep -n 'Unix' file1.txt
  在文件 file1.txt 中查找不包含 UNIX 的行并带行号输出

■ sort

sort 命令用来对输入行进行排序并输出。

(例)
$ sort < file1.txt
以升序输出 file1.txt 的各行

$ sort -u < file1.txt
以升序输出 file1.txt 的各行,重复的行只输出一次

$ sort -r < file1.txt
以降序输出 file1.txt 的各行

$ sort file1.txt -o file2.txt
将 file1.txt 的各行排序并输出到文件 file2.txt

$ sort -n file1.txt
将 file1.txt 的各行以数值排序并输出

$ sort +1n file.txt
将 file1.txt 的各行根据第2字段(空格分割)以数值排序并输出
  第2フィールドを使って数値的に並び替える。

$ sort +2n -t: file1.txt
将 file1.txt 的各行根据第3字段(冒号分割)以数值排序并输出

■ uniq

uniq 命令用于查找文件中的重复行(输出不重复的行)。

(命令格式) uniq in_file out_file

(例)
$ uniq file1.txt
输出 file1.txt 中不重复的行

$ uniq -d file1.txt
输出 file1.txt 中有重复的行

$ uniq -c file1.txt
统计 file1.txt 中各行的重复次数并输出

※注: 本文翻译整理自《UNIXツール
December 2009
S M T W T F S
November 2009January 2010
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31