sed -e
和sed -f
选项之间的区别是什么?其中哪些应该用于现场编辑。
我无法从手册页中清楚地理解它们的含义。
答案 0 :(得分:1)
sed -e <commands>
执行命令行上传递的命令,如sed -e s/foo/bar/
,而sed -f <file>
执行传递文件中的命令。
它们都与现场编辑无关。那是-i <backup_extension>
。如果没有传递任何扩展名(例如sed -i '' -e s/foo/bar/ file_to_edit
),则不进行备份。
答案 1 :(得分:1)
根据sed
的手册页-e脚本 --expression =脚本 将脚本中的命令添加到处理输入时要运行的命令集
这意味着sed将在命令行本身执行直接传递给它的命令,例如sed -e 's/foo/bar/g'
在哪里, -f脚本文件 --file =脚本文件 将文件脚本文件中包含的命令添加到处理输入时要运行的命令集中。
使用-f sed时会期望-f
选项后指定的文件中的命令。这通常适用于复杂的操作。
只要进行编辑,就可以使用任何选项。例如:
sed -i -e 's/foo/bar/g'