我创建了以下脚本:
#!bin/bash
cat > Top10 <<EOF
Linux Mint 17.2
Ubuntu 15.10
Debian GNU/Linux 8.2
Mageria 5
Fedora 23
openSUSE Leap 42.1
Arch Linux
CentOS 7.2-1511
PCLinuxOS 2014.12
Slackware Linux 14.1
FreeBSD
EOF
sed -ri "s/^[^0-9]*$//" Top10
sed -r "s/(.*)([[:space:]][[:digit:]]*.*)$/\2\1/" Top10 | sed -r "s/([[:space:]])([[:digit:]])/\2/" | sed -r "s/([[:digit:]])([[:alpha:]])/\1 \2/" > Top10
sed -r -i "s/(.*)/\L\1/" Top10
sed -r -i "y/[aeiou]/[AEIOU]/" Top10
sort Top10 -g -o Top10
cat Top10
Run Code Online (Sandbox Code Playgroud)
当我运行它几次时,会发生以下情况:
正如您所看到的,有时 Top10 文件会变成空文件,有时会变成我需要的样子。我知道替换从一行的末尾到前面的扩展名的命令做得很差。我在 VMware 虚拟机上运行了这个脚本。这可能是原因吗?