添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

用shell将文件中的一个词替换成字符串

1 人关注

我有一个文件,其中我必须将字符串 "lock allpages "转换成STRING "LOCATION 'hdfs://LOCATION/DIRECTORY/TBL;' " 。我试着用 sed,但它抛出了一些错误。谁能建议我需要做的修改。我试过下面的方法,但不奏效。另外,谁能建议如何使用 sed 一次性替换多个字符串?

sed -i 's/lock allpages/LOCATION 'hdfs://LOCATION/DIRECTORY/TBL';'
    
1 个评论
"它抛出了一些错误" -- 究竟是什么错误?"它不工作" -- 什么 is 它在做什么,与你所期望的有什么不同?请看 我如何提出一个好问题?
linux
shell
unix
scripting
Suraj
Suraj
发布于 2021-06-24
1 个回答
Zak
Zak
发布于 2021-06-24
已采纳
0 人赞同

You need to escape your single quotes and forward slashes in your sed statement. .. That and you're not COMPLETING the sed statement .. You need to close your second argument with a slash -> / (Or whatever delimiter you choose)

sed -i 's/lock allpages/LOCATION \'hdfs:\/\/LOCATION\/DIRECTORY\/TBL;\'/g' 

或者,如果你把语句放在双引号中,那么。就不需要转义单引号了