如何将所有数字带入shell中

时间:2015-08-08 05:01:45

标签: bash unix sh

输入文件:

new12
abc34
none44
bore93
this67

输出应为:

12new
34abc
44none
93bore
67this

如何在Unix shell脚本中使用命令进行操作?

3 个答案:

答案 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_