如何用bash将第一个单词移到最后?
eg. "super duper"
=> "duper super"
文字永远是两个单词。
答案 0 :(得分:2)
awk
稍短的版本。它将交换第一个和最后一个单词,而不管数字在
awk '{t=$1;$1=$NF;$NF=t}1'
$ echo "super califragilisticly duper" | awk '{t=$1;$1=$NF;$NF=t}1'
duper califragilisticly super
答案 1 :(得分:1)
试试这个......
sed -e "s/\([^ ]*\) *\([^ ]*\)/\2 \1 /g" filename
为每个单词和每个单词获取一个捕获组,然后将它们与后面的引用进行交换。
答案 2 :(得分:1)
while read -r word1 word2
do
echo "$word2 $word1"
done <<< "super duper"
未经过测试通过电话接听
答案 3 :(得分:0)
swapwords() {
echo $2 $1
}
swapwords super duper
=> duper super
swapin() {
read first last
echo $last $first
}
echo super duper | swapin
=> duper super
答案 4 :(得分:0)
使用shell工具的另一种选择:
ghoti@pc:~$ tac -b -s\ <<< "super duper" | paste - -
duper super