面向初学者的Sed脚本

面向初学者的Sed脚本,sed,Sed,我有两个命令要放在sed脚本中(向已经创建的文本文件添加一些标题)。这两个命令如下: sed '/TEST/i\"-TEST-"\' grades.txt sed '/PROJECT/i\"-PROJECT-"\' grades.txt 我遇到的问题是创建实际的脚本。我首先在命令行中键入sed-f nameofscript.sed。在那里,我使用#键入开场白,点击回车键,然后键入我的命令(末尾不带grades.txt)。我键入的每个命令都会回显给我。完成后,我再次键入sed-f nameofs

我有两个命令要放在
sed
脚本中(向已经创建的文本文件添加一些标题)。这两个命令如下:

sed '/TEST/i\"-TEST-"\' grades.txt
sed '/PROJECT/i\"-PROJECT-"\' grades.txt

我遇到的问题是创建实际的脚本。我首先在命令行中键入
sed-f nameofscript.sed
。在那里,我使用
#
键入开场白,点击回车键,然后键入我的命令(末尾不带grades.txt)。我键入的每个命令都会回显给我。完成后,我再次键入
sed-f nameofscript.sed grades.txt
。剧本似乎没有结尾。于是我点击了
control-d
。当我去查看脚本(catnameofscript.sed)时,里面什么都没有。我已经做了很长一段时间了,所以任何帮助都将不胜感激。非常感谢你

使用文本编辑器创建脚本文件,然后执行该文件

sed-f
不会启动交互式编辑器

它在标准输入上运行
sed
(这就是为什么它会回显您的行,因为默认情况下它会打印,而您没有给它任何sed脚本来执行)

如果
nameofscript.sed
不存在,那么
sed-f nameofscript.sed
将在您尝试运行它时给出一条错误消息


更明确地说,当您运行
sed-f某个空文件.sed
时,您告诉
sed
在标准输入上运行空脚本。没有标准输入,因此
sed
等待并侦听来自您的输入(通过键盘)。当你输入“死气沉沉”时,你正在输入
sed
内容行。然后,它通过其脚本(为空)处理这些内容,并执行默认的
print
操作,然后将它们吐回给您。

嗯。。。sed不是交互式文本编辑器。您必须像编写任何其他文本文件一样编写脚本,使用您选择的编辑器。感谢您的快速回答!作为UNIX的新手,我们非常感谢您的帮助。我非常感谢我找到了这个网站。明白了!因此,我可以使用VIM编写脚本,然后键入sed-f nameofscript.sed grades.txt以应用该文件。我想我明白了!是的;你现在明白了。再次感谢那些昨天帮助我完成第一个剧本的人!我让一切正常,并且能够在文本文件中执行它。现在我正试图将编辑后的版本发送到一个新的文本文件,但遇到了一些问题。我正在键入:sed-f sedscriptname.sed grades.txt>是重定向标准输出<代码>