shell脚本printf
A. shell脚本 setenv YE 0100 然后yr= `printf "%04d" $YE` 再echo $yr 为什么yr是0064
printf默认输出的是10进制数,0100是八进制,
试试这个
YE=0100
yr=`printf "%#o" $YE`
echo $yr
B. linux shell脚本中printf打印的时候怎么不足2位补空格
echo"123"|awk'{printf"%2s",$2}'
C. 在 shell脚本中调用一个C语言的可执行程序,如何将C程序中printf的字符保存成到文件中
在shell调用时,重定向输出的信息:
./helloExe>test.txt
hello world!就保存到文件test.txt中了。
D. 【现学现忘&Shell编程】— 31.AWK编程之printf命令
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。
AWK可以看成一门独立的语言,它拥有语言的基本特征,换句话说AWK可以写出极其繁琐和复杂的程序,AWK的语法比Shell的语法还难以接收。但绝大多数情况下,我们并不需要用AWK写过于复杂的东西,建议能用Shell处理的需求就不用AWK来解决。
当用AWK处理需求远要比Shell处理简单的多的时候,我们就用AWK来解决。
AWK也是用来截取列信息的,它比Shell中的 cut 命令更先进,比如对空格作为分隔符的处理。
在学习AWK之前,我们要先学习一下 printf 格式化输出命令,这个命令是AWK基本输出中必须要用到的一个命令。
AWK的标准输出支持 print 命令和 printf 命令,这两个命令在AWK当中基本作用是一样的,但是Linux命令中只支持 printf 命令,如下:
我们可以看到Linux系统中只支持 printf 命令,所以我们这里就先学习一下 printf 命令。
使用如下文本
执行 printf 命令:
[root@localhost tmp]# printf '%s' $(cat student.txt)
说明: printf 命令后是没有办法直接写参数的,也就是不能直接加文件名来读取文件的内容, printf 命令支持的是其他命令结果的输出,交给 printf 命令来处理。所以说 printf 命令很少单独使用,一般都放在AWK当中来使用,这样更加合理,否则就和上边一样,看起来很难受。
结果:
我们可以看到上面的结果非常的烂,他是把所有的内容一个字符紧接着一个字符的输出,中间没有空格或者回车。
这就是 printf 命令,如果不指定输出的格式,则会把所有输出内容连在一起输出。其实文本的输出本身就是这样的, cat 等文本输出命令之所以可以按照漂亮的格式输出,那是因为 cat 命令已经设定了输出格式。
那么为了让 printf 输出合理的格式,就需要手动自定义自己需要的格式。
printf '%s\t %s\t %s\t %s\t %s\t %s\t \n' $(cat student.txt)
执行命令结果如下:
如果不想把成绩当成字符串输出,而是按照整型和浮点型输出,执行如下命令:
这个例子不是很好,但一定要把标题顾虑掉,否则会出现如下效果,标题都被变成了整型数据。
E. shell中的print和printf的区别
shell 没有print命令, 不过是有printf命令的哦, 这个区别在于, printf可以使用格式化字符串的呢。
能否看一下my网名呢, 以后遇到了shell编程的问题的话, 都能帮助搞定的哦。
F. Shell脚本如何向终端输出信息
常用如下两个命令用于向终端打印信息:echoprintf echo命令常用于需要进行简单格式化的字符串打印;printf命令是Shell版本的C语言函数printf,它为格式化输出提供了高度的灵活性。echo命令 用于向终端输出信息的最常用命令是echo命令,用法为: echo string 这里,string是要向屏幕打印输出的字符串,如命令:echo Hi 产生如下输出:Hi 也可以将空格嵌入到输出中,例如: $echo Hello World! Hello World! 除了空格,还可以在string中嵌入格式化转义序列。 echo命令的常用转义序列 转义序列描述 \n打印一个换行符 \t打印一个跳格符(tab符) \c打印字符串时不带换行符 \ 打印一个双引号 printf命令类似于echo命令,最基本的使用与echo一样,以下echo命令: echo Hello World!等同于 printf Hello World! printf命令与C语言中的printf函数一样,还可以使用格式化串来实现复杂的格式化输出功能,语法如下: printf format argument 格式化序列的格式如下:%[-]m.nx 这里%用于标识格式化序列的开始,x标识格式化序列的类型,下表给出了x常用的值: 格式化序列类型字母描述s字符串c单个字符 d十进制整数 x十六进制整数f符点数
G. shell脚本主要有哪些
第一个shell脚本程序:
#!/bin/bash
# 上面中的 #! 是一种约定标记, 它可以告诉系统这个脚本需要什么样的解释器来执行;echo "Hello, world!"
变量:
定义变量:
country="China"Number=100
注意: 1,变量名和等号之间不能有空格;
2,首个字符必须为字母(a-z,A-Z)。
3, 中间不能有空格,可以使用下划线(_)。
4, 不能使用标点符号。
5, 不能使用bash里的关键字(可用help命令查看保留关键字)。
使用变量:
只需要在一个定义过的变量前面加上美元符号$就可以了, 另外,对于变量的{} 是可以选择的, 它的目的为帮助解释器识别变量的边界.
country="China"echo $countryecho ${country}echo "I love my ${country}abcd!"
#这个需要有{}的;
重定义变量:直接把变量重新像开始定义的那样子赋值就可以了:
country="China"country="ribenguizi"
只读变量: 用 readonly 命令 可以把变量字义为只读变量。
readonly country="China"#或
country="China"readonly country
删除变量: 使用unset命令可以删除变量,但是不能删除只读的变量。用法:
unset variable_name
变量类型
运行shell时,会同时存在三种变量:
1) 局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量
所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
特殊变量:

其中, 1. 取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。2. 如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。
H. shell中的print和printf的区别
因为不知道你使用的是bash还是tcsh,还是其他种类的shell。假设是bash, 下面举例子讲解,有可能你的机器上的同样的命令输出与我的不同,供参考。
1)运行下面2条which命令:
$ which print
/usr/bin/print
$ which printf
/usr/bin/printf
说明当前机器上安装了外部命令print和printf
2)看一下这2个命令的具体的位置:
$ ls -l /usr/bin/print /usr/bin/printf
lrwxrwxrwx 1 root root 11 Nov 15 2010 /usr/bin/print -> run-mailcap
-rwxr-xr-x 1 root root 51744 Apr 1 2012 /usr/bin/printf
说明print是符号链接,看看它指向的可执行文件:
$ ls -l /usr/bin/run-mailcap
-rwxr-xr-x 1 root root 17012 Nov 15 2010 /usr/bin/run-mailcap
3)运行print --help或者man print可以查看它的帮助
运行man printf可以查看帮助,或者运行/usr/bin/printf --help查看帮助
为什么运行printf --help不能查看帮助呢?
4)在bash环境下面,运行help可以看见所有的内置命令,可以看见内置命令包括printf,命令同名时,内置命令的优先级高于外部命令,并且内置命令用help printf来查看帮助。
综上所述,查看内置printf命令的帮助用help printf,查看外部printf命令的帮助要带上全路径,运行/usr/bin/printf --help查看帮助(不带全路径会被认为是内置printf命令)。
5)我个人经验,普通的打印用echo命令,格式化打印用printf命令(内置的,外部的都可以)。
谢谢!
I. linux建立一个shell脚本格式化输出一个文件
linux建立一个shell脚本格式化输出一个文件可以实现。
1、C++实现获取文件名称,输出到txt文档中,拷贝到Excel以便按列处理。
2、构造格式一左数据,组合成格式一数据。
3、结合notepad++正则表达式匹配,构造格式二、三内容,组合成格式二、三数据,即可建立一个shell脚本格式化输出一个文件。
J. shell中的print和printf的区别
print按照默认的分隔符打印一个或多个变量或常量(字符串),末尾自动换行;
printf可以格式化后输出每个变量,(可以控制打印位置、分割、占位宽度、数值的显示方式、位数等),末尾不会自动换行,如需换行需要在printf第一个格式字符串参数末尾使用“\n”
这是主要的区别,具体用法可以查看相关帮助文件
