我有一个这样的字符串:file-name-example-data
。
我只想删除字符串中的第一个破折号 (-
)。
基本上我想要这个输出:filename-example-data
。
您建议使用什么 bash 命令?任何 sed 或 awk 命令都可以工作吗?
字符串可以是任意长度和任意数量的破折号。
答案 0 :(得分:1)
我会按照以下方式使用 GNU AWK 的 sub
函数,让 file.txt
内容为
file-name-example-data
然后
awk '{sub("-","");print}' file.txt
输出
filename-example-data
说明:sub
函数用空字符串替换 -
的最左边出现,即删除它,因为我使用了 2 个参数形式,它可以在整行上工作。 print
单独打印整行更改。如果您想了解有关 sub
的更多信息,请阅读 String Functions manual。
(在 gawk 4.2.1 中测试)
答案 1 :(得分:1)
像这样使用sed
sed 's/-\+//' input
解释:替换 (s
) 一个或多个 -
的第一个实例。
我会以这种方式使用 awk:
awk '{sub(/-+/,"")}1' input
答案 2 :(得分:1)
用字符串
a="file-name-example-data"
你可以使用
echo "${a/-}"
filename-example-data