仅在文本文件的第一行中以大写字母为单位?

时间:2017-08-25 07:25:07

标签: shell scripting

我必须只在第一行将大写字母转换为小写字母,并且更改必须影响文本,不仅打印出好的结果。

文字示例:
阿塞拜疆

C

结果:
阿塞拜疆

ç

谢谢

1 个答案:

答案 0 :(得分:1)

假设当前目录中存在名为file的文件,并假设该文件的内容为:

AzE
B
C

并假设您只想将第一行转换为小写,正如问题标题所示,以下命令将打印出您想要的内容:

head -n1 file |tr '[A-Z]' '[a-z]'; tail -n -2 file

结果是:

aze
B
C

文件的第一行由head提取,并通过tr过滤;结果在屏幕上输出。然后,tail命令用于打印文件的其余部分。

如果要写入另一个文件,则必须将这两个命令作为单个命令执行,并重定向整个“复合”命令,如下所示:

(head -n1 file |tr '[A-Z]' '[a-z]'; tail -n -2 file) >file2

请记住重定向到您正在阅读的同一个文件...它将无效。

希望这有帮助。