[英]Sorting a list in bash 1
我在test.idx中有很多文本,我將用:
# alt: Spanish
# alt: German
# alt: Englisch
我的腳本:
#!/bin/bash
results=$(cat /home/test.idx | grep "# alt:" | awk '{print $3}')
echo "$results"
輸出在彼此之間:
Spanish
German
English
如何一個接一個地輸出? :
Spanish German English
問候
一種方法,將其粘貼到管道中:
awk '{print $3}' | paste -s -
另一個,使用printf而不是print:
awk '{printf "%s ", $3} END { print "" }'
$ awk '/# alt:/{printf "%s%s", (NR>1 ? OFS : ""), $NF} END{print ""}' file
Spanish German Englisch
並回應您在@jas的回答下的評論:
$ awk -v OFS=', ' '/# alt:/{printf "%s%s", (NR>1 ? OFS : ""), $NF} END{print ""}' file
Spanish, German, Englisch
這僅適用於單字語言,例如,如果您必須處理“古希臘語”,那么您需要一個略有不同的解決方案,例如:
$ cat file
# alt: Spanish
# alt: Ancient Greek
# alt: Englisch
# alt: Upper Sorbian
$ awk -v OFS=', ' 'sub(/^# alt: */,""){printf "%s%s", (NR>1 ? OFS : ""), $0} END{print ""}' file
Spanish, Ancient Greek, Englisch, Upper Sorbian
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.