输入文件:
new12
abc34
none44
bore93
this67
输出应为:
12new
34abc
44none
93bore
67this
如何在Unix shell脚本中使用命令进行操作?
答案 0 :(得分:5)
您可以使用sed。
sed 's/^\([^[:digit:]]\+\)\([[:digit:]]\+\)$/\2\1/' file
答案 1 :(得分:1)
这是一个Awk:
{
w = d = ""
n = split($1, c, "")
for (i = 1; i <= n; i++)
if (c[i] ~ /[[:alpha:]]/)
w = w c[i]
else
d = d c[i]
print d w
}
$ awk -f switch.awk file
12new
34abc
44none
93bore
67this
要按正确的顺序打印,该单词将被拆分为一个字符数组,用于构建单词和数字字符串,具体取决于它们是否与正则表达式[[:alpha:]]
匹配。
答案 2 :(得分:0)
只有bash:
#!/bin/bash
switch(){ tail="${var##*[[:digit:]]}"
head="${var%$tail}"
echo -e "in :$var\t out : $tail$head"; }
while read -r var; do
switch "$var"
done <<-_testwords_
12new
34abc
44none
93bore
67this
87ert67ter
ak356ajf43
_testwords_