我有一个包含以下单词列表的文件:
FIRST_WORD abc
FIRST_WORD(1) bcd
FIRST_WORD(2) def
SECOND_WORD gh
THIRD_WORD jiu
THIRD_WORD(1) lom
...
我希望删除(i)
,如果它存在,则获取:
FIRST_WORD abc
FIRST_WORD bcd
FIRST_WORD def
SECOND_WORD gh
THIRD_WORD jiu
THIRD_WORD lom
...
答案 0 :(得分:15)
你可以得到它:
test="123456"
echo ${test:3}
输出:
456
答案 1 :(得分:3)
使用sed
全局替换括号内的所有数字字符串:
$ sed 's/([0-9]\+)//g' file
FIRST_WORD abc
FIRST_WORD bcd
FIRST_WORD def
SECOND_WORD gh
THIRD_WORD jiu
THIRD_WORD lom
# Save the changes back to the file
$ sed -i 's/([0-9]\+)//g' file
使用sed
删除前3个字符:
$ sed 's/^...//' file
ST_WORD abc
ST_WORD(1) bcd
ST_WORD(2) def
OND_WORD gh
RD_WORD jiu
RD_WORD(1) lom
答案 2 :(得分:2)
试试这个。
sed 's/([0-9])//g' file
答案 3 :(得分:2)
这可能适合你(GNU sed):
sed -r '$!N;s/^((\S+).*\n\2)\([^)]*\)/\1/;P;D' file
然而,如果出现以下情况可能会有些过分:
sed 's/([0-9]\+)//' file
就足够了。
答案 4 :(得分:1)
这是一个纯粹的bash实现:
while read -r a b; do
echo "${a%(*)}" "$b"
done < input.txt