使用sed搜索并替换字符串中的第一个单词(字符串除以空格)

时间:2017-07-05 07:57:04

标签: string sed

输入字符串:"a-random_name /this/is/a/path_to-file 0"
输出字符串:"arandomname /this/is/a/path_to-file 0"
使用sed只替换第一个单词。 word是随机字符串。

2 个答案:

答案 0 :(得分:1)

试试这个简单的awk方法

awk  '{gsub(/-|_/,"",$1); print}' <<< '"a-random_name /this/is/a/path_to-file 0"'

输出

"arandomname /this/is/a/path_to-file 0"

<强>解释

根据默认空格分隔符提取第一列,并使用-函数删除_gsub

Sed版本:

我不确定这是否是有效的方法,但它会帮助你

sed -e 's/-\|_//1' -e  's/-\|_//1' <<< '"a-random_name /this/is/a/path_to-file 0"'

答案 1 :(得分:1)

使用GNU sed:

sed ':a;s/^\([^-_ ]*\)[-_]/\1/;ta;' file