sed command - segítség kérés

Sed használatát gyakorlom.
A file "nevek.txt" tartalma:

1, George Washington, 1984, 1345
2, John Adams, 1234, 4321,
3, Thomas Jefferson, 1022, 1230
....

A kimenetre ezt szeretném:

1, Washington George
2, Adams John
.....

Ez a parancs valamiért nem működik:

"sed -r 's/^([0-9]{1,2}), ([\w .]+?) ([\w ]+?), ([0-9]{1,4}),/\1\3\2/' nevek.txt"

Tudtok segíteni?

Hozzászólások

Erre elég egy cut:

$ echo '1, George Washington, 1984, 1345' | cut -d, -f1-2
1, George Washington

UP: ja nem... a nevet ez nem fordítja... bocs

UP2: esetleg így?

$ echo '1, George Washington, 1984, 1345' | sed -r 's/^([0-9]+), ([^ ]+) ([^ ,]+).*/\1, \3 \2/'
1, Washington George

awk
cat nevek.txt | awk '{ print $1 $3 $2 }' ?

awk-nak van beéptett substring metódusa, meg cat-et se értem minek pluszban forkolni.. akkor már ez ha awk megengedett:
# awk '{gsub (",",""); print $3,$2}' /tmp/nevek.txt

____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

Attol fugg hogy az evszamokat meg akarod-e tartani:
$ cat input.txt
1, George Washington, 1984, 1345
2, John Adams, 1234, 4321,
3, Thomas Jefferson, 1022, 1230

$ sed -E 's/(\w+)\ (\w+),/\2 \1,/g' input.txt
1, Washington George, 1984, 1345
2, Adams John, 1234, 4321,
3, Jefferson Thomas, 1022, 1230

$ sed -E 's/(\w+)\ (\w+),.*/\2 \1/g' input.txt
1, Washington George
2, Adams John
3, Jefferson Thomas