linux下生成00 01 02..99的这些数,怎么生成【转】

本文演示了在CentOS系统中使用seq、tr、大括号序列、for循环、awk、xargs和printf等命令进行数字序列操作和字符串处理的方法,展示了Linux命令行的强大功能。

下面这些方法在centos下亲测有效

原文链接:细节之处方显linux真功夫_老男孩linux培训的技术博客_51CTO博客

原文标题:细节之处方显linux真功夫

在转载过程中,将每条命令都执行了下,稍稍改动,抱歉,老男孩老师

解答1:本题的知识点为seq的-s和-w

[root@zz ~]# seq -s " " -w 99
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[root@zz ~]# 

老男孩老师点评:seq的-w是补全数字的宽度,不够的前面加0补。-s是指定分隔符,默认是\n。


解答2:本题的知识点为tr的用法

[root@zz ~]# seq -w 99|tr "\n" " "
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [root@zz ~]#

老男孩老师点评:由于seq默认的分隔符是"\n",因此,在输出后需要把所有行尾的"\n"替换为空格。


解答3:本题的知识点是大括号序列的用法

[root@zz ~]# echo {00..99}
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[root@zz ~]#

弥补的三个小办法:

[root@zz ~]# echo 01 02 03 04 05 06 07 08 09 {10..99}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[root@zz ~]# 

[root@zz ~]# echo `seq -w 10` {11..99}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
 



解答4:本题的知识点是seq -f的用法

[root@zz ~]# seq  -s " " -f "%02g" 99
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[root@zz ~]#


解答5:本题的知识点是xargs的用法

[root@zz ~]# seq -f"%02g" 99 |xargs -n 99
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[root@zz ~]#

老男孩老师点评:xargs有时候是非常有用的命令,要熟练掌握它。

解答6:本题的知识点是for循环打印的用法

[root@zz ~]# for i in `seq -w 99`;do echo -n $i" "; done
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [root@zz ~]#


[root@zz ~]# for i in `seq 99`;do printf "%02d " $i;done
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [root@zz ~]#

[root@zz ~]# for ((i=0;i<100;i++));do printf "%02d " $i;done
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [root@zz ~]#

老男孩老师点评:数字序列可以使用任意的命令替换得到。



解答7:本题的知识点是awk的用法

[root@zz ~]# seq 99 |awk '{if(NR<10)printf '0' $0" ";else printf $1" "}'
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [root@zz ~]#

[root@zz ~]# seq 99 |awk '{if(NR<10)print '0' $0;else print $0}'|xargs -n 100
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[root@zz ~]#

老男孩老师点评:linux的三剑客之一,awk的威力就不说了。

解答8:本题的知识点是eval和双大括号组合的用法

[root@zz ~]# eval echo {`seq -s , 0 9`}{`seq -s , 0 9`}
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[root@zz ~]#

提示:以上命令相当于echo {0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}

[root@zz ~]# echo {0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[root@zz ~]#



解答9:本题的知识点是printf的用法

[root@zz ~]# printf "%02d " $(seq 99)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 



解答10:本题的知识点是awk中双重循环的用法

[root@zz ~]# awk 'BEGIN{for(i=0;i<=9;i++) {for(j=0;j<=9;j++)printf i j" " }}'
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [root@zz ~]#


 

老男孩老师点评:linux的三剑客之一,sed的威力就不说了。

<think>好的,我需要帮助用户了解如何将Tomcat从9.0.41升级到9.0.99。首先,我需要确认Tomcat 9.0.99是否真的存在。查阅Apache Tomcat官网发现,目前Tomcat 9的最新版本是9.0.85,9.0.99可能尚未发布或者用户可能打错了版本号。这个信息需要向用户说明,避免误导。 接下来,用户的需求是在Linux环境下进行升级,所以步骤需要针对Linux系统。常见的升级步骤包括备份现有配置、下载新版本、替换文件、调整配置等。需要确保用户的据和配置不会丢失,特别是webapps、conf、logs等目录。 用户提供的引用中有提到使用Tomcat的安装和配置,比如设置CATALINA_HOME和环境变量,这些在升级过程中也需要考虑。例如,用户需要更新符号链接指向新版本,并确保启动脚本正确引用新的路径。 另外,引用中提到使用wget或直接下载war包的方式安装软件,这可能适用于获取新版本的Tomcat。需要指导用户下载正确的二进制包,并解压到合适的目录,比如/opt/tomcat。 还要注意停止Tomcat服务后再进行文件替换,避免据损坏。启动新版本后,需要检查日志确认是否正常运行,以及应用程序是否兼容新版本。可能需要更新Java版本或其他依赖,如引用3中提到的JDK。 最后,生成相关问题时要覆盖升级后的验证、回滚方法、常见问题等,帮助用户全面了解升级过程。</think>### Tomcat从9.0.41升级到9.0.99步骤说明 首先需注意:**Apache Tomcat官方目前最新版本为9.0.85(截至2023年10月)**,9.0.99可能尚未发布或存在版本号输入错误[^2]。以下以假设9.0.99存在的场景说明通用升级步骤: --- #### **步骤1:备份现有环境** 1. 停止Tomcat服务: ```bash $CATALINA_HOME/bin/shutdown.sh ``` 2. 备份关键目录: ```bash cp -r $CATALINA_HOME/webapps /backup/tomcat_9.0.41_webapps cp -r $CATALINA_HOME/conf /backup/tomcat_9.0.41_conf ``` --- #### **步骤2:下载新版本** 1. 通过wget获取(需替换实际下载链接): ```bash wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.99/bin/apache-tomcat-9.0.99.tar.gz ``` 2. 解压到目标目录: ```bash tar -xzf apache-tomcat-9.0.99.tar.gz -C /opt/tomcat/ ``` --- #### **步骤3:迁移配置与据** 1. **迁移配置文件**(对比新旧版本差异): ```bash cp /backup/tomcat_9.0.41_conf/server.xml $CATALINA_HOME_NEW/conf/ cp /backup/tomcat_9.0.41_conf/context.xml $CATALINA_HOME_NEW/conf/ ``` 2. **迁移应用程序**: ```bash cp -r /backup/tomcat_9.0.41_webapps/* $CATALINA_HOME_NEW/webapps/ ``` --- #### **步骤4:更新环境变量** 修改`.bashrc`或系统配置文件中的`CATALINA_HOME`指向新路径: ```bash export CATALINA_HOME=/opt/tomcat/apache-tomcat-9.0.99 ``` --- #### **步骤5:启动并验证** 1. 启动服务: ```bash $CATALINA_HOME/bin/startup.sh ``` 2. 检查端口和日志: ```bash ss -ant | grep 8080 # 确认端口监听 tail -f $CATALINA_HOME/logs/catalina.out # 观察启动日志 ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值