我有以下字符串
"1 Michael"
"2 John" ...
我想把它们变成
"Michael 1"
"John 2" ....
我怎样才能做到这一点?
字符串存储在一个 shell 变量中,每个字符串代表一个单独的行。
所以当调用 echo "$var" 时它会打印
1 Michael
2 John
答案1
echo "$string" | sed -E 's/([[:digit:]]+) (.*)/\2 \1/'
答案2
将两个空格分隔的字段交换为awk
:
awk '{ print $2, $1 }' file >outfile
输出作为空格分隔的文件写入名为 的文件中outfile
。
测试:
$ cat file
1 Michael
2 John
$ awk '{ print $2, $1 }' file >outfile
$ cat outfile
Michael 1
John 2