如何从字符串中提取开头字母?我想在遇到第一个非字母字符之前提取开头出现的字母。
例如,如果输入字符串是abcd045tj56,则输出应该是abcd
同样,如果输入是jkl657890,则输出应该是jkl
可以使用 awk/sed/cut 在 shell 脚本中完成吗?
我试过
echo "XYZ123" | awk 'sub(/[[:alpha:]]*/, "")'
Run Code Online (Sandbox Code Playgroud)
但它给出的是 123 而不是 xyz
然后我尝试了
echo "XYZ123" | awk '{print (/[[:alpha:]]*/)}'
Run Code Online (Sandbox Code Playgroud)
但它给出了 1
我希望答案是 XYZ
将我的评论转换为此处的答案。使用任何awk
版本。
awk '
match($0,/^[a-zA-Z]+/){
print substr($0,RSTART,RLENGTH)
}
' Input_file
Run Code Online (Sandbox Code Playgroud)
或者:
awk '
match($0, /[^[:alpha:]]/){
print substr($0, 1, RSTART-1)
}
' Input_file
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
195 次 |
最近记录: |