假设我有一个这样的数据数组:
arr[0] = "someText1 (x,y,z) a"
arr[1] = "someText2 (x,y,z) b"
Run Code Online (Sandbox Code Playgroud)
如何使用Bash按字典顺序排列此数组[仅考虑文本]?
加入换行,转到sort.
(IFS=$'\n'; sort <<<"${arr[*]}")
Run Code Online (Sandbox Code Playgroud)
sort <<<"fnord"只需将字符串"fnord"作为标准输入发送给sort; 这是一个笨拙的Bash方便符号echo "fnord" | sort(加上它避免了额外的过程),同样,sort <<<"${arr[*]}"将数组提供给sort.
因为数组粘贴取决于值IFS,我们将其更改为换行符,以便"${arr[*]}"生成换行符分隔列表(默认情况下IFS会导致数组中的条目扩展为以空格分隔的列表).为了不IFS永久改变,我们在子壳中做到这一点; 因此,括号括起来.
该猛砸手册页是相当密集的,但是这一切都没有; 或参见参考手册.
| 归档时间: |
|
| 查看次数: |
609 次 |
| 最近记录: |