【 linux命令 sed 】
sed是一个管道命令,可以分析standard input 而且sed可以将数据进行替换、删除、新增、选取的特定的功能
sed [-nefr] [动作]
- -n 使用安静(silence)模式。在一般sed的用法中,所有来自STDIN的数据一般都会被列出到屏幕。
- -e 直接在命令行模式上进行sed的动作编辑。
- -f 直接将sed的动作写在一个文件内,-f filename 则可以执行filename内的sed动作
- -r sed的动作支持的是扩展型正则表达式的语法
- -i 直接修改读取的文件内容,而不是有屏幕输出
动作说明:[n1,n2 动作]
如需要在10到20行之间进行 则,“10,20[动作]”
function 具有参数:
a 新增,a后面接字符串,而这些字符串会在新的一行出现
c 替换,c的后面可以接字符串,这些字符串可以替换n1,n2之间的行
d 删除,
i 插入,
p 打印,
s 替换,
例:
sed ‘s/①要被替换的字符串/②新的字符串/g’=====》①和②的位置可以使用正则表达式 —-2016-11-15
#【编写shell脚本获取本机的网络地址】
#########################################################################
#!/bin/bash
#Program
#show ip address and network
IP=$(ifconfig eth0 | grep 'inet'| grep 'Bcast'| sed 's/^.*addr://g'|sed 's/Bcast.*$//g')
Mask=$(ifconfig eth0 | grep 'inet'|grep 'Bcast'| sed 's/^.*Mask://g')
echo "$IP/$Mask"
【 linux命令 awk,文件按指定格式输出】
awk相当适合小型的数据数据处理,它倾向于将一行分成数个“字段”来处理。
awk ‘条件类型1 {动作1} 条件类型2 {动作2} ……’ filename
awk是以行为单位进行处理,每行都是有变量名的,分别是$1、$2等字段
awk的处理流程:
-
- 读入第一行,并将第一行数据填入、1、2、$3等变量中;
-
- 依据条件类型的限制,判断是否需要进行后面的动作
-
- 做完所有的动作与条件类型
-
- 若还有后续的行数据,重复[1 - 3] 的步骤,直到所有数据都读完为止。
内置变量
- NF:每行($0)拥有的字段数
- NR:目前awk所处理的是"第几行"数据
- FS:目前的分隔符,默认是空格键
#【编写个shell脚本将/local目录下小于10K的文件转移到当前目录下】
#########################################################################
#!/bin/bash
#Programing
#using moving /local directory to current directory
for currrentfile in $(ls -l /local| awk '$5 < 10240 {print $9}')
#ll命令后 第5个变量是文件大小的数据,只要判断小于10240就表示为小于10K的文件,并且把它们显示出来。for会遍历这些文件
do
mv /local/$currentfile $(pwd)
done
ls -a $(pwd)
echo "done!"
2016-11-16
【scp–remote file copy program
】
scp是一个远程文件拷贝命令,可以通过命令来对文件进行copy操作
如需要把A计算机 /local/sdb/aa
文件夹copy到B计算机的/local/bb文件中
- 在A计算机上操作命令如下:
scp -r /local/sdb/aa user@10.92.34.20:/local/bb
然后会让输入B计算机的密码来完成操作。 - 或者在B计算机上把A计算机中文件“拉”过来命令如下:
scp -r user@10.92.34.122:/local/sdb/aa /local/bb