sed打印九九乘法表

<span style="font-size:18px;">seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'</span>

预备知识:

seq:产生一个序列

sed:模式空间和存储空间

H:将pattern space中的内容append到hold
space\n后

g:将存储空间的数据覆盖模式空间

输出的时候使用的模式空间,存储空间只是一个暂存器

1、seq产生1,然后加到sed模式空间,H将模式空间的值追加到存储空间,此时模式空间为1,存储空间为\n1,然后复制到模式空间,这时候模式空间为\n1,最后输出,将\n1传递到awk

awk -v RS=‘‘

{

for(i=1;i<NF;i++){

printf("%dx%d=%d%s",i,NR,i*NR,i==NR?‘\n‘:‘\t‘);

}

}

注:RS=‘‘表示以空行作为分割符

2、seq产生2,然后加到模式空间,此时模式空间为2,存储空间为\n1;H将2追加到存储空间,此时存储空间为\n1\n2;

之后g将\n1\n2复制到模式空间,这时候模式空间为\n1\n2,输出到awk,此时awk处理的是\n1\n2

3、重复上述过程,知道打印完九九乘法表

虽然一句话就实现了九九乘法表,但是相比较高级语言还是有点难啊!

时间: 2024-11-10 16:09:13

sed打印九九乘法表的相关文章

JSP基础——分别使用表达式和脚本方式打印九九乘法表

最近在学习慕课网的课程<java遇见HTML--JSP篇>,简单做些记录. 课程网址为:http://www.imooc.com/learn/166 任务描述:分别使用表达式和脚本方式打印九九乘法表 代码如下: <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%> <% String path =

使用表达式和jsp脚本打印九九乘法表

<body> <%! //返回九九乘法表对应的HTML代码,通过表达式来调用,在页面上显示 //使用表达式方式整出九九乘法表 String printMultiTable1()//方法 { String s = ""; for(int i=1;i<=9;i++) { for(int j=1;j<=i;j++) { //s+=i+"*"+j+"="+(i*j)+"\t";不推荐 s+=i+"

使用whIle循环语句和变量打印九九乘法表

-设置i变量declare @i int --设置j变量declare @j int --设置乘法表变量declare @chengfabiao varchar(1000)--给i,j,@chengfabiao赋初始值select @i=9,@j=1,@chengfabiao=''--使用whIle循环语句和变量打印九九乘法表while @i>=1begin set @[email protected] while @j>=1 begin select @chengfabiao=convert

jsp打印九九乘法表

一.jsp之注释 <!-- 在客户端中可见 --> <%-- 在客户端中不可见 --> jsp脚本注释://单行注释     /**/多行注释 二.jsp之声明 <%!      %> 三.jsp打印九九乘法表 表达式方式与脚本方式 <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%&g

javaSE 打印九九乘法表

下面的示例用嵌套for循环打印一个九九乘法表 格式:for(){ for(){ } } 其实就是拿内层循环作为外层循环的循环体 package com.forfortest001; public class ForForTestDemo2 { //打印九九乘法表 public static void main(String[] args) { for(int i=1;i<10;i++){ for(int j=1;j<=i;j++){ System.out.print(i+"*&quo

python3 打印九九乘法表

打印九九乘法表 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan for i in range(1,10): for j in range(1,10): if j < i: print('%d * %d = %d\t'% (j, i, i * j),end='') elif i == j: print('%d * %d = %d\t'% (j, i, i * j)) 效果: C:\Python36\python.e

打印九九乘法表,三种方式

二维展开,要想到两层循环,看源码要了解参数的用法,然后根据用法可以自行改动参数,以达到预期的效果 # 打印九九乘法表(有三种方式,这是最简便的方式) # 方式一 """ for i in range(1, 10): for j in range(1, i + 1): # 思路:看到有重复的就想循环,然后有限循环用for # print(str(i)+'*'+str(j)+"="+str(i*j)+" ", end='') ''' 1*1

python脚本7_打印九九乘法表

#打印九九乘法表 for i in range(1,10): s = "" for j in range(1,i+1): s += str(j) + '*' + str(i) + '=' + str(i*j)+ ' ' print(s) 方法2: #打印九九乘法表 for i in range(1,10): for j in range(1,i+1): print('{}*{}={}\t'.format(j,i,i*j),end="") print() 原文地址:h

python 打印 九九乘法表

# -*- utf-8-*- print(u'打印九九乘法表') #u 代表unicode 字符串for x in range(1,10): for y in range(1,x+1): print("{}*{}={}\t".format(y,x,y*x),end='') #end=''表示不进行换行 print("") #用于换行操作 原文地址:https://www.cnblogs.com/tjjslg/p/10705251.html