我正在尝试开发一个bash shell脚本。
我的要求是我有一个文件
ABC-123
XY2Z-234
我希望这是我文件的输出
ABC-123_ABC
XY2Z-234_XY2Z
我怎样才能实现这个目标?
答案 0 :(得分:1)
您可以使用sed,
sed 's/^\([^-]*\).*/&_\1/' file
答案 1 :(得分:0)
s="ABC-123"
echo "${s}_${s%-*}"
输出:
ABC-123_ABC
在${s%-*}
中,-*
中的模式$s
匹配(来自结束/右侧的最短匹配)并删除以生成ABC
。
另一种方式是:
echo "${s}_${s/-*/}"
第一次出现的模式-*
与$s
匹配(左起),并替换为空字符串(删除)以生成ABC
。