Shell 将字符串的一部分作为单词添加到其旁边,并将行的最后一个单词转换为小写
我想在字符串旁边添加一部分作为单词(格式),然后将该行的最后一个单词(格式)转换为小写 例如,我有一行如下Shell 将字符串的一部分作为单词添加到其旁边,并将行的最后一个单词转换为小写,shell,unix,awk,sed,tr,Shell,Unix,Awk,Sed,Tr,我想在字符串旁边添加一部分作为单词(格式),然后将该行的最后一个单词(格式)转换为小写 例如,我有一行如下 <http://example.com/Bob> Alex 亚历克斯 我需要输出为 <http://example.com/Bob> <Bob> <alex> <http://example.com/Bob> <Bob> <alex> 我尝试了sed和tr命令,但没有成功。任何建议都会有帮助
<http://example.com/Bob> Alex
亚历克斯
我需要输出为
<http://example.com/Bob> <Bob> <alex>
<http://example.com/Bob> <Bob> <alex>
我尝试了sed和tr命令,但没有成功。任何建议都会有帮助
谢谢
帕拉维是这样的吗
sed 's@\(http://.*/\)\(.*\) \(.*\)@\1\2 \2 \L\3@' <<< "http://example.com/Bob Alex"
像这样的
sed 's@\(http://.*/\)\(.*\) \(.*\)@\1\2 \2 \L\3@' <<< "http://example.com/Bob Alex"
像这样的
sed 's@\(http://.*/\)\(.*\) \(.*\)@\1\2 \2 \L\3@' <<< "http://example.com/Bob Alex"
像这样的
sed 's@\(http://.*/\)\(.*\) \(.*\)@\1\2 \2 \L\3@' <<< "http://example.com/Bob Alex"
使用awk:
awk '{s=gensub(/.*\//,"","g");
s=gensub(/>.*/,"","g",s);
printf "%s <%s>",$1,s;
for(i=2; i < NF; i++)
{
printf " %s",$i;
}
printf " <%s>\n",tolower($NF);}' input.txt
awk'{s=gensub(/.\/,“”,“,”g”);
s=gensub(/>.*/,“”,“g”,s);
printf“%s”,$1,s;
对于(i=2;i
或:
awk'{s=gensub(/.\/,“”,“,”g”);
s=gensub(/>.*/,“”,“g”,s);
$1=$1" ";
$NF=“”;
print;}'input.txt
输出:
带awk:
awk '{s=gensub(/.*\//,"","g");
s=gensub(/>.*/,"","g",s);
printf "%s <%s>",$1,s;
for(i=2; i < NF; i++)
{
printf " %s",$i;
}
printf " <%s>\n",tolower($NF);}' input.txt
awk'{s=gensub(/.\/,“”,“,”g”);
s=gensub(/>.*/,“”,“g”,s);
printf“%s”,$1,s;
对于(i=2;i
或:
awk'{s=gensub(/.\/,“”,“,”g”);
s=gensub(/>.*/,“”,“g”,s);
$1=$1" ";
$NF=“”;
print;}'input.txt
输出:
带awk:
awk '{s=gensub(/.*\//,"","g");
s=gensub(/>.*/,"","g",s);
printf "%s <%s>",$1,s;
for(i=2; i < NF; i++)
{
printf " %s",$i;
}
printf " <%s>\n",tolower($NF);}' input.txt
awk'{s=gensub(/.\/,“”,“,”g”);
s=gensub(/>.*/,“”,“g”,s);
printf“%s”,$1,s;
对于(i=2;i
或:
awk'{s=gensub(/.\/,“”,“,”g”);
s=gensub(/>.*/,“”,“g”,s);
$1=$1" ";
$NF=“”;
print;}'input.txt
输出:
带awk:
awk '{s=gensub(/.*\//,"","g");
s=gensub(/>.*/,"","g",s);
printf "%s <%s>",$1,s;
for(i=2; i < NF; i++)
{
printf " %s",$i;
}
printf " <%s>\n",tolower($NF);}' input.txt
awk'{s=gensub(/.\/,“”,“,”g”);
s=gensub(/>.*/,“”,“g”,s);
printf“%s”,$1,s;
对于(i=2;i
或:
awk'{s=gensub(/.\/,“”,“,”g”);
s=gensub(/>.*/,“”,“g”,s);
$1=$1" ";
$NF=“”;
print;}'input.txt
输出: