我是 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