Lubuntu 脚本用于反转列表 state-capital capital-state 的顺序

Lubuntu 脚本用于反转列表 state-capital capital-state 的顺序

我是 Linux 新手,有一个项目在一小时内到期,我知道我可以用来tac反转列表,但是如何反转顺序,例如:

Birmingham-Alabama
Atlanta-Georgia
Topeka-Kansas

对此:

Alabama-Birmingham
Georgia-Atlanta
Kansas-Topeka

答案1

如果你始终只有 2 个字段:

awk  -F- '{print $2"-"$1}' file
  • 这仅打印第二个字段,后跟破折号,后跟第一个字段。

或者使用 bash:

while IFS="-" read -r a b; do echo "$b-$a"; done <file
  • IFS设置 bash 内部字段分隔符的值。
  • read逐行读取输入并将第一个字段保存到变量中$a,将第二个字段保存到中$b
  • echo然后用破折号打印两者。
  • <file给出的内容file作为输入。

如果字段数量不总是相同:

awk  -F- 'OFS="-"{c=1;for(i=NF;i>=1;i--){a[c]=$i;c++}for(i=1;i<=NF;i++){$i=a[i]}}1' file

相关内容