awk字符串函数(printf格式化输出) -- shell

awk有许多强大的字符串函数

gsub(r,s)                              在整个$0中,用s代替r

gsub(r,s,t)                           在整个t中,用s代替r
#替换字符串

index(s,t)                             返回s中字符串t的第一位置
#未用过

length(s)                               返回s长度
#c语言strlen

match(s,r)                             测试s是否包含匹配r的字符串
#c语言strcmp

split(s,a,fs)                         使用分隔符fs将字符串s划分为指定序列a

sprint(fmt,exp)                       输出经过fmt格式化后的exp

substr(s,p)                            返回字符串s中从p开始的后缀部分

substr(s,p,n)                         返回字符串s中从p开始的长度为n的后缀部分
#用截取第一个字符串和获取某一段字符串

printf

-                                      左对齐

Width                                  域的步长,用0表示0步长

.prec                                  最大字符串长度,或小数点右面的位数

%c                                     ASCII字符

%d                                     整型

%e                                     科学计数法

%f                                     浮点型
#使用小数点后2位%.2f (用于除法后)

%g                                     awk决定哪种浮点数转换e或者f

%o                                     八进制

%s                                     字符串

%x                                     十六进制

例一:

[[email protected] shell]# awk -F ":" ‘gsub(/502/,213213213) {print$0}‘ passwd

test:x:213213213:213213213::/home/test:/bin/bash

[[email protected] shell]#

例二:

[[email protected] shell]# awk -F ":" ‘gsub(/502/,213213213,$3) {print$0}‘ passwd

test x 213213213 502  /home/test /bin/bash

[[email protected] shell]#

例三:

[[email protected] shell]# awk ‘BEGIN {print index("test","t")}‘ passwd

1

[[email protected] shell]#

例四:

[[email protected] shell]# awk -F ":" ‘{if($1=="test"){print$0,length($1)}}‘ passwd

test:x:502:502::/home/test:/bin/bash 4

[[email protected] shell]#

例五:

[[email protected] shell]# awk -F ":" ‘{if($1=="test") {print substr($1,1,3)}}‘ passwd

tes

[[email protected] shell]#

例六:

[[email protected] shell]# awk ‘BEGIN {STR="a few good men"} END{print substr(STR,7)}‘ passwd

good men

[[email protected] shell]#

例七:

[[email protected] shell]#
STR=test.txt

[[email protected] shell]#
echo $STR

test.txt

[[email protected] shell]# echo $STR | awk ‘{print substr($0,1,4)}‘

test

[[email protected] shell]# echo $STR | awk ‘{print substr($0,6)}‘

txt

[[email protected] shell]#

例一:

[[email protected] shell]# awk -F ":" ‘{print $1,$3,$7}‘ passwd

rpcuser 29 /sbin/nologin

nfsnobody 65534 /sbin/nologin

sshd 74 /sbin/nologin

haldaemon 68 /sbin/nologin

avahi-autoipd 100 /sbin/nologin

xfs 43 /sbin/nologin

gdm 42 /sbin/nologin

mysql 500 /sbin/nologin

mysql1 501 /sbin/nologin

test 502 /bin/bash

test1 503 /bin/bash

[[email protected] shell]# awk -F ":" ‘{printf " %-15s %-15s %s\n",$1,$3,$7}‘ passwd

rpcuser         29              /sbin/nologin

nfsnobody       65534           /sbin/nologin

sshd            74              /sbin/nologin

haldaemon       68              /sbin/nologin

avahi-autoipd   100             /sbin/nologin

xfs             43              /sbin/nologin

gdm             42              /sbin/nologin

mysql           500             /sbin/nologin

mysql1          501             /sbin/nologin

test            502             /bin/bash

test1           503             /bin/bash

[[email protected] shell]#

时间: 2024-11-05 22:01:28

awk字符串函数(printf格式化输出) -- shell的相关文章

(Go)15.golang printf 格式化输出

Printf 格式化输出 通用占位符: v 值的默认格式. %+v 添加字段名(如结构体) %#v 相应值的Go语法表示 %T 相应值的类型的Go语法表示 %% 字面上的百分号,并非值的占位符 布尔值: %t true 或 false 整数值: %b 二进制表示 %c 相应Unicode码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由Go语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicod

python入门8 字符串拼接、格式化输出

字符串拼接方式    1  使用 + 拼接字符串 2 格式化输出:%s字符串 %d整数 %f浮点数 %%输出% %X-16进制 %r-原始字符串 3 str.format() 代码如下: #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 字符串拼接,格式化输出 """ import time name = input('input name :') #输入姓名 age = int(i

shell printf格式化输出语句

printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 echo 好. 如同 echo 命令,printf 命令也可以输出简单的字符串: $printf "Hello, Shell\n" Hello, Shell $ printf 不像 echo 那样会自动换行,必须显式添加换行符(\n). printf 命令的语法: printf format-s

printf()格式化输出详解

% - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少. ②-:有-表示左对齐输出,如省略表示右对齐输出. ③0:有0表示指定空位填0,如省略表示指定空位不填. ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数.N指精度.用于说明输出的实型数的小数位数.对数值型的来说,未指定n时,隐含的精度为n=6位. ⑤l或h:l对整型指long型,对实型指double型.h用于将整型的格式字符修正为short型. -------------

awk字符串函数总结

在这里总结一下awk的字符串函数. 1. 长度函数length() 2. 分段函数split() 语法如下: split(input-string, output-array, separator) split函数将一个字符串分隔到一个数组中.它有三个参数,第一个为输入字符串,也就是要处理的字符串:第二个为一个输出数组:第三个为分隔符. 3. 字符串抽取函数substr() 语法如下: substr(input-string, location, length) substr函数提取给定字符串的

变量、交互&注释、数字&字符串&布尔、格式化输出

变量 变量定义规范: 声明变量: name = "Neo Zheng"    # name为变量名(标识符),"Neo Zheng"是变量值. 变量定义规则: 1. 变量名只能是字母.数字或下划线的任意组合: 2. 变量名的第一个字符不能是数字: 3. 有些关键字不能声明为变量名.['and', 'as', 'print', ...... ] 因为这些关键词是Python的语法. 注:变量名中间不能有空格,但末尾可以有. 变量命名习惯: 1. 驼峰体: eg. Nu

Python字符串拼接和格式化输出

1.字符串拼接 example:a = 'hello' , b = 'python' , c = '!' 将a,b ,c 中的字符串连成一句话. 第一种方法:用 + 号a + b +c 第二种方法:格式化字符串 %s'%s %s %s' % (a , b ,c) 第三种方法:''.join()方式,注意括号里是要连接的可以是列表,元祖' '.join([a,b,c]) (注:''里面是连接后面各个字符串的字符) 第四种方法:.format方式'{}{}{}'.format(a,b,c) (注:{

awk字符串函数(二)

substr函数 substr函数返回从字符串指定位置开始的一个子串.如果指定了子串的长度,则返回字符串的相应部分.如果指定的长度超出了字符串的实际范围,则返回其实际内容. 格式 substr(字符串,起始位置) substr(字符串,起始位置,子串长度) 范例 $ awk '{print substr("Santa Claus",7,6)}' filename Claus 说明:在字符串"Santa Claus" 中,打印从位置7开始.长度为6个字符的子串. ma

KEIL C51 printf格式化输出特殊用法

作者:dragoniye   发布:2014-02-15 12:44   分类:硬件     抢沙发 /*******************************************KEIL里扩展出了b,h,l来对输入字节宽的设置:(1)b八位(2)h十六位(默认)(3)l三十二位 在Keil C51中用printf输出一个单字节变量时要使用%bd,如unsigned char counter;printf(“Current count: %bd\n”, counter);//输出8位”