次の文字列があります
"1 Michael"
"2 John" ...
私はそれらを次のように変更したいと思います。
"Michael 1"
"John 2" ....
どうすればいいですか?
文字列はシェル変数に格納され、各文字列は別々の行を表します。
したがって、echo "$ var"が呼び出されると印刷されます。
1 Michael
2 John
答え1
echo "$string" | sed -E 's/([[:digit:]]+) (.*)/\2 \1/'
答え2
スペースで区切られた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