sed:删除值并在末尾插入

sed:删除值并在末尾插入

我有以下字符串

"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

相关内容