Sed 有人能解释一下shell脚本中的这一行是做什么的吗?

Sed 有人能解释一下shell脚本中的这一行是做什么的吗?,sed,Sed,sed-i.bak/“string”/s/$/“num/”文件名 其中“string”是一种模式,“num”是一个数字,“filename”是一个文件名,sed每次读取一行,并将脚本的操作依次应用于每一行 -i.bak选项表示将更改写回原始文件名,并使用.bak扩展名保存以前的内容 脚本在包含string的行中添加前面带有空格的num 外壳报价基本上是破损的;作者似乎一直在猜测引用的必要性。但是这里唯一关键的引用是num之前的空格必须在引号内,这恰好成功了。只要不太随意地引用,剧本就可以写成 s

sed-i.bak/“string”/s/$/“num/”文件名


其中“string”是一种模式,“num”是一个数字,“filename”是一个文件名,sed每次读取一行,并将脚本的操作依次应用于每一行

-i.bak
选项表示将更改写回原始文件名,并使用
.bak
扩展名保存以前的内容

脚本在包含
string
的行中添加前面带有空格的
num

外壳报价基本上是破损的;作者似乎一直在猜测引用的必要性。但是这里唯一关键的引用是
num
之前的空格必须在引号内,这恰好成功了。只要不太随意地引用,剧本就可以写成

sed -i.bak '/string/s/$/ num/' filename

sed
脚本的一般语法是一系列
对,其中
是可选的;如果缺少,则将
应用于所有行。但是在这里,
只选择与第一对斜杠之间的正则表达式匹配的行,
s
替换命令。regex
$
匹配每行末尾之前的位置,替换的只是一个静态字符串。

你考虑过试试吗?@tink事实上,我需要有人解释一下命令的每一项功能。如果使用这个命令或它的函数,结果不会是什么。这个页面()非常好地解释了sed,并且它还有一套非常棒的其他unix教程()。