Unix 如何使用sed搜索行并替换行末尾的字符串

Unix 如何使用sed搜索行并替换行末尾的字符串,unix,sed,grep,Unix,Sed,Grep,我的要求是在一个文件中搜索一行,该行应该有模式@$SQL\u DIR,并在行的末尾添加字符串$IDSS\u LA\u SCHEMA。有人能帮我吗 问候,, Rajesh使用awk,awk'/PATTERN/{print$0,“STRING”}/path/to/your/file可能是这样的: sed '/@\$SQL_DIR/ s/$/\$IDSS_LA_SCHEMA/' 我试图做的是匹配包含指定字符串的行,对于其中的每一行,用第二个字符串替换结尾 > cat temp ngkerng

我的要求是在一个文件中搜索一行,该行应该有模式
@$SQL\u DIR
,并在行的末尾添加字符串
$IDSS\u LA\u SCHEMA
。有人能帮我吗

问候,,
Rajesh

使用awk,
awk'/PATTERN/{print$0,“STRING”}/path/to/your/file
可能是这样的:

sed '/@\$SQL_DIR/ s/$/\$IDSS_LA_SCHEMA/'
我试图做的是匹配包含指定字符串的行,对于其中的每一行,用第二个字符串替换结尾

> cat temp
ngkerng
egerger
erger
ghethe @$SQL_DIRand
jgnv
erger
>
见下文:

> perl -pi -e 'if(/\@\$SQL_DIRand/){$_=~s/$/\$IDSS_LA_SCHEMA/;}' temp
>cat temp
ngkerng
egerger
erger
ghethe @$SQL_DIRand$IDSS_LA_SCHEMA
jgnv
erger
> 

注意:这将做一个就地附加。

谢谢您的回答。这是sed'/\$SQL\u DIR/s/$/\$IDSS\u LA\u SCHEMA/'+1,但请注意,这将在
字符串之前添加一个空格。只需省略逗号即可避免额外的空格。
> perl -pi -e 'if(/\@\$SQL_DIRand/){$_=~s/$/\$IDSS_LA_SCHEMA/;}' temp
>cat temp
ngkerng
egerger
erger
ghethe @$SQL_DIRand$IDSS_LA_SCHEMA
jgnv
erger
>