コロンで文字を変更する方法は?

コロンで文字を変更する方法は?

両側が互いに交換されるように、コロン間の文字を変更したいと思います。

例: 入力

1: Hello
2: World
3: I
4: am 
5: Brendan

出力:

Hello: 1
World: 2
I: 3
am: 4
Brendan: 5

私はcutとsedを試しましたが、正しい方法が見つかりませんでした。

ベストアンサー1

あなたはこれを試すことができますawk

awk 'BEGIN{FS=OFS=": "}{print $2, $1}' file.txt 

または、sedに-Eオプションがあります。

sed -E 's/(.+): (.+)/\2: \1/' file.txt 

または、より遅い(最も遅いわけではありませんが)シェルソリューションです。

while IFS=": " read -r first second; do
  printf '%s: %s\n' "$second" "$first"
done < file.txt 

おすすめ記事