Linux 用sed替换/附加子字符串

Linux 用sed替换/附加子字符串,linux,sed,Linux,Sed,我想请你帮忙 问题是: 我有一个密码: text 我想提出一个结果: text其中S是字符,number是可变整数 我不知道的问题是,如何在行首使用subs non fix,如何使用正则表达式? 提前谢谢 如果我清楚地理解了您的需求,那么在bash中类似的东西将适用于您: str='<h1 class="a">text</h1>' # this is your original string ch='S' # this is your character n='56789

我想请你帮忙

问题是:

我有一个密码:
text

我想提出一个结果:
text
其中S是字符,number是可变整数

我不知道的问题是,如何在行首使用subs non fix,如何使用正则表达式?
提前谢谢

如果我清楚地理解了您的需求,那么在bash中类似的东西将适用于您:

str='<h1 class="a">text</h1>' # this is your original string
ch='S' # this is your character
n='56789' # this is your number
echo "${str}<${ch}${n}>" | \
  sed 's#\(<h1[^>]*>\)\([^<]*\)\(</h1>\)<\([^>]*\)>#\1<a name="\4">\2</a>\3#'

OUTPUT:
<h1 class="a"><a name="G56789">text</a></h1>
str='text'#这是您的原始字符串
这是你的角色
这是你的电话号码
回声“${str}”|\
sed的#\(]*>\)\([^\35;\ 1\2\3#'
输出:
文本

很抱歉,如果我有任何误解,那么我将很高兴地删除我的答案。

我可以将您转发到这一非常有趣的主题,并为您提供一个很好的概述。S和数字将由什么决定?字符串内部的某个东西,或者您是在循环中调用它还是什么?S和数字是什么?结果必须是bS1、S2、S3等中的e。但这不是问题。:-)如果我尝试另一个例子:我想举这个例子:每个以asa开头的单词都改为asa*newchars,其中*是原始字符串的第二部分。如果您认为awk更适合于此,那就没问题了!嗨!谢谢您的帮助。问题是我从文件中读取它,其中str是变量:-(更简单的是,没有问题。但有时是或之后的任何其他字符串,所以我需要替换为清楚吗?@Peter:如果你看到我的答案,它会处理所有
,而不仅仅是
。甚至我的示例也有
文本
。当然,这个字符串也可以在bash中从文件中读取。