首页 > UniX技术

使用UNIX命令进行文本处理cat 和 echo

时间:2009-04-15 17:57:39  作者:chinaitlab  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
UNIX......


清单 1. 将标准错误流连接到标准输出流
make > build-output 2>&1

      

命令

有两个常用来生成文本输出的标准 UNIX 命令:cat 和 echo。

cat 命令读取参数中指定的每个文件,并将这些文件的内容写入到 stdout。echo 命令将其参数写入到 stdout。您常常会发现它们作为更复杂的命令管道中的一部分(请参见清单 2)。


清单 2. 使用 cat 和 echo
cat file1 file2 ... filen

echo arguments...

      

但如果您只需要文件中开头的部分或结尾的部分,那又应该如何呢?cat 有两种可用来完成这种任务的变种,称为 head 和 tail(请参见清单 3),它们分别可以显示开头的或结尾的 10 行内容,您可以使用 -n 选项为它们指定不同的行数。
清单 3. 使用 head 和 tail
head file1 file2 ... filen

tail file1 file2 ... filen

      

tail 命令还有一个有用的选项 -f (follow)。该选项告诉 tail 打印指定文件的最后 10 行,但是它不仅打印已有的内容,还会等待该文件中将要出现的更多内容,并对其进行打印。您可以使用该选项接着 显示错误日志中的输出,例如,要在将错误写入到日志的同时查看这些错误。

 

 

 

转换文本

既然您已经了解了至少 5 种生成文本的方式,下面让我们来看一些进行简单文本转换的示例。

tr 命令允许您将一个集合中的字符转换为另一个集合中相应的字符。让我们来看一些示例(清单 4),以了解其工作方式。


清单 4. 使用 tr 对字符进行转换
echo "a test" | tr t p

echo "a test" | tr aest 1234

echo "a test" | tr -d t

echo "a test" | tr '[:lower:]' '[:upper:]'

      

研究这些命令的输出结果(请参见清单 5),可以看出 tr 的工作方式(提示:它直接使用第二个集合中相应的字符来代替第一个集合中的字符)。


清单 5. tr 进行了哪些工作?
chrish@dhcp3 [199]$ echo "a test" | tr t p

a pesp

chrish@dhcp3 [200]$ echo "a test" | tr aest 1234

1 4234

chrish@dhcp3 [201]$ echo "a test" | tr -d t

a es

chrish@dhcp3 [202]$ echo "a test" | tr '[:lower:]' '[:upper:]'

A TEST

      

第一个和第二个示例都很简单,将一个字符替换为另一个字符。第三个示例使用了 -d 选项 (delete),它从输出中彻底删除了指定的字符。这个选项通常用来从 DOS 文本文件中删除回车,以将其转换为 UNIX 文本文件(请参见清单 6)。最后一个示例使用了字符类([: :] 中的名称),以将所有的小写字母转换为大写字母。可移植操作系统接口标准(POSIX 标准)字符类包括:

  • alnum:字母数字字符
  • alpha:字母字符
  • cntrl:控制(非打印)字符
  • digit:数字字符
  • graph:图形字符
  • lower:小写字母字符
  • print:可打印字符
  • punct:标点符号
  • space:空白字符
如果您需转载 使用UNIX命令进行文本处理cat 和 echo,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门