题目
编写一个shell脚本,该脚本可以实现将一个文本文件中的所有行进行反转,并将结果保存到另一个文件中。以下哪个命令可以实现? A. cat input.txt | sort -r > output.txtB. cat input.txt | tac > output.txtC. cat input.txt | rev output.txtD. cat input.txt | awk 'BEGIN(OFS=ORS="");(for (i=NF;i >0;i--)print i)' > output.txt
编写一个shell脚本,该脚本可以实现将一个文本文件中的所有行进行反转,并将结果保存到另一个文件中。以下哪个命令可以实现?
- A. cat input.txt | sort -r > output.txt
- B. cat input.txt | tac > output.txt
- C. cat input.txt | rev output.txt
- D. cat input.txt | awk 'BEGIN(OFS=ORS="");{for (i=NF;i >0;i--)print $i}' > output.txt
题目解答
答案
本题考察对Shell命令的理解。需将文件行顺序完全反转。
- A项 `sort -r` 按字典序降序排序,不符合要求。
- B项 `tac` 可将行顺序完全反转,符合需求。
- C项 `rev` 反转字符顺序,不符要求。
- D项 `awk` 脚本逻辑错误,无法实现行反转。
正确答案为:**B. `cat input.txt | tac > output.txt`**。此命令可将 `input.txt` 的行顺序完全反转并保存至 `output.txt`。
解析
本题考查对Shell命令的理解,核心在于行顺序的反转与字符顺序的反转的区别。关键点在于:
tac
命令可直接实现行逆序输出;sort -r
是按字典序降序排序,rev
是反转单行字符顺序,awk
脚本逻辑错误;- 需区分行顺序反转与行内字符反转。
选项分析
A. cat input.txt | sort -r > output.txt
- 功能:按字典序降序排列行。
- 问题:未实现行逆序,而是按内容排序。
B. cat input.txt | tac > output.txt
- 功能:直接输出文件所有行的逆序。
- 正确性:完全符合题目要求。
C. cat input.txt | rev output.txt
- 功能:反转每行内的字符顺序。
- 问题:处理对象是行内字符,而非行顺序。
D. cat input.txt | awk 'BEGIN(OFS=ORS="");{for (i=NF;i >0;i--)print $i}' > output.txt
- 功能:尝试反转每行字段顺序,但脚本存在语法错误(
BEGIN
括号应为{}
),且逻辑错误(未处理行顺序)。 - 问题:无法实现行逆序。