sed脚本的命名规范是什么?

4

我知道在Linux中文件扩展名并不重要,但是命名sed脚本的惯例是什么?我已经见过.sh、.sed和.sd这两种形式。


2
大多数人使用 .sed 来编写仅包含 sed 命令的脚本。 - potong
1
事实上,我很少见到.sed作为sed脚本文件名的一部分。而我已经写了将近20年的sed和awk脚本。 - Graham
1
我同意。“扩展名”是一种已经过时的MS-DOS特性,现在没有人再需要它了。 - ghoti
1
我的 sed 脚本总是以 .pl 结尾。 :) - tchrist
2个回答

3

当文件包含shell命令时,请使用.sh; 当文件只包含Sed命令并由sed -f加载时,请使用.sed

例如,以下内容应称为script.sh:

#!/bin/sh
sed 's/foo/bar/g'

这将是script.sed的内容:
s/foo/bar/g

像Vim这样的编辑器会根据.sh.sed进行适当的高亮显示。


1
Vim会通过读取文件的第一行并从脚本解释器的名称确定适当的语法,为您提供正确的高亮显示。根本不需要使用DOS约定。 - Graham
1
为什么你会把它命名为 script.sed 而不是只是 script 呢?你不会真的把你的 shell 脚本命名为 script.sh 吧? - tchrist
1
@tchrist:是的,我通常在脚本上使用.sh扩展名。我知道这不是必需的,但遵循这个有用的约定。 - Fred Foo

2

惯例上,sed脚本中不需要添加“扩展名”。

在Unix系统中,文件就是文件,没有所谓的扩展名。扩展名是FAT文件系统的方言,在Unix中只有那些还没有完全摆脱DOS/Windows思维方式的人使用。

按照文件内容来命名文件即可,文件内容本身就可以说明问题。


我知道我可以按自己的意愿为文件命名,但了解文件的内容而无需查看内部是很有用的。 - nist
1
许多Unix工具,包括高亮编辑器,都会根据文件扩展名做出响应。 - Fred Foo
1
@larsmans,它们会响应文件扩展名,因为它们遵循波斯特尔法则。仅仅因为你能够做某事,并不意味着你应该这样做。 - ghoti
2
他们可能会响应文件名扩展,因为这在Unix世界中是一个长期存在的传统。如果你看早期的Unix源代码,你会发现C源文件有.c,汇编文件有.s等。 - Fred Foo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接