【发布时间】:2014-07-19 13:46:20
【问题描述】:
我想将字符串的一部分作为单词(格式)添加到它旁边,然后将行的最后一个单词(格式)转换为小写
例如我有如下一行
<http://example.com/Bob> Alex
我需要输出为
<http://example.com/Bob> <Bob> <alex>
我尝试了 sed 和 tr 命令,但没有成功。任何建议都会有所帮助
谢谢 帕拉维
【问题讨论】:
我想将字符串的一部分作为单词(格式)添加到它旁边,然后将行的最后一个单词(格式)转换为小写
例如我有如下一行
<http://example.com/Bob> Alex
我需要输出为
<http://example.com/Bob> <Bob> <alex>
我尝试了 sed 和 tr 命令,但没有成功。任何建议都会有所帮助
谢谢 帕拉维
【问题讨论】:
这样的?
sed 's@\(http://.*/\)\(.*\) \(.*\)@\1\2 \2 \L\3@' <<< "http://example.com/Bob Alex"
给予:
http://example.com/Bob 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);
$1=$1" <"s">";
$NF="<"tolower($NF)">";
print;}' input.txt
输出:
<http://example.com/Bob> <Bob> <alex>
【讨论】: