如何通过 bash 脚本从后到前对 linux 中的数据进行排序
How to sort data in linux by bash scripting from last to first
如何在linux中通过命令在控制台中从后到前对文本文件中的数据进行排序?
我有:
1:a k2:b k3:c k
我需要:
k k3:c k2:b 1:a
假设样本输入在一个变量中:
$ x='1:a k2:b k3:c k'
反转 space 分隔值方向的一个想法:
$ tr ' ' '\n' <<< "${x}" | tac | tr '\n' ' '
k k3:c k2:b 1:a
另一个使用 bash/for
循环的想法:
$ unset pfx y
$ for i in ${x} # do not wrap ${x} in double quotes since we DO want word splitting to occur
do
y="${i}${pfx}${y}"
pfx=" "
done
$ echo "${y}"
k k3:c k2:b 1:a
使用 awk
的另一个想法:
$ awk '{for (i=NF;i>=1;i--){printf "%s%s",pfx,$i;pfx=" "};printf "\n"}' <<< "$x"
k k3:c k2:b 1:a
如何在linux中通过命令在控制台中从后到前对文本文件中的数据进行排序?
我有:
1:a k2:b k3:c k
我需要:
k k3:c k2:b 1:a
假设样本输入在一个变量中:
$ x='1:a k2:b k3:c k'
反转 space 分隔值方向的一个想法:
$ tr ' ' '\n' <<< "${x}" | tac | tr '\n' ' '
k k3:c k2:b 1:a
另一个使用 bash/for
循环的想法:
$ unset pfx y
$ for i in ${x} # do not wrap ${x} in double quotes since we DO want word splitting to occur
do
y="${i}${pfx}${y}"
pfx=" "
done
$ echo "${y}"
k k3:c k2:b 1:a
使用 awk
的另一个想法:
$ awk '{for (i=NF;i>=1;i--){printf "%s%s",pfx,$i;pfx=" "};printf "\n"}' <<< "$x"
k k3:c k2:b 1:a