如何使用bash脚本删除从字符串最初和最后的数字
问题描述:
很新打坏的脚本,所以如果我有一个列表通常文本文件具体为与领先的ZIP和结束邮政信箱例如USA.txt客户端地址一个国家的每个文件(数字被屏蔽的隐私):如何使用bash脚本删除从字符串最初和最后的数字
38495newyork940
454354irvine40404
2333wathington4440
32333california002929
23234dallas4th93303
我想运行USA.txt作为参数传递给一个bash脚本,将每行删除开头和最后的数字。请注意,某些城市或州可能在名称中包含数字,所以我想保留它们。
我试图运行对sed命令,但我不能合并最终的结果我只是喜欢命令删除或主导最终的数字:
领导位数:
sed -r 's/^[0-9]+(.*[^0-9].*)$/\1/g'
和结束位数:
sed "s/\([^0-9]\)[0-9]*\s*$/\1/"
我需要像输出:
newyork
irvine
wathington
california
dallas4th
感谢
答
你可以给sed
多个命令,只要你喜欢:
$ sed 's/^[0-9]*//; s/[0-9]*$//' USA.txt
newyork
irvine
wathington
california
dallas4th
或者,你可以做到这一切在一个命令:
$ sed 's/^[0-9]*\(.*[^0-9]\)[0-9]*$/\1/' USA.txt
newyork
irvine
wathington
california
dallas4th
和第三个方法是' sed -E's/^ [0-9] * | [0-9] * $ // g'或'sed -E's/^ [0-9] * | [0-9] * $ // g''(OP的样本末尾有空格) – Sundeep
@Sundeep空格似乎是一个神器。他们不在编辑模式下(除了最后一个样本行)。 –
是的,最有可能在OP的文件中没有.. – Sundeep