1 / 25
文档名称:

sed-awk.pdf

格式:pdf   页数:25
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

sed-awk.pdf

上传人:紫岑旖旎 2014/3/19 文件大小:0 KB

下载得到文件列表

sed-awk.pdf

文档介绍

文档介绍:Crazylinux 工作室

-------------------------------
出自:crazylinux 工作室
网址:
时间: 转载请保留此信息
-------------------------------


AWK SED 作者:L。J
E-mail:lijie2402@
1,怎样处理用户名?(怎样从/etc/passwd 中把用户目录读出来?)
引用:
我在做一个自动设置输入法环境变量的脚本,因为是用 root 运行,所以我就想从/etc/passwd 里把用户
目录给读出来。现在的情况是这样:
[tram@~]$ sed -n '{s/^[^\/]*//;s/\:.*//;p}' /etc/passwd
/root
/home/tram
/home/kde
[tram@~]$
算是得到了每个用户的根目录,但是要怎样才能一个一个的设置呢?因为在运行前,是不知道有几个用户
的,是不是能做一循环呢?谢谢!
解答参考:
a,sed
代码:
sed -n '{s/^[^\/]*//;s/\:.*//;p}' /etc/passwd
b,awk
代码:
awk -F: '{print $6}' /etc/passws
c,cut
代码:
cut -f6 -d: /etc/passwd
d,script
代码:
#! /bin/bash
#
IFS=:
while read name pass uid gid gecos home shell
do
echo $home
done
发展开源精神,普及 Linux 教育
Crazylinux 工作室
网址:
Crazylinux 工作室
执行./ < /etc/passwd

2,如何将文本文件的每行做为字符串送入一个变量?
引用:
就是对一行文本送入一个字符串变量,然后下一行再做同样动作,应该是个循坏。目标为了把想要下载的
软件放在一个文本中,然后从另一个文本中找本上面这些软件包 REQUIRE 的其它包,然后生成一个下载
列表,让 FTP 程序安刻列表自动去下载。
解答参考:
引用:
如果把一行文本送入一个字符串变量,可以采用直接赋值的方式。如:
AA= "This is a example"
如果要把 文件不同的行赋值给同一个变量,可以用 awk:
cat | awk '{ AA = $0 }'
然后在 awk 内部加上对 AA 变量进行处理的函数。
其中将文件中每行赋给一个变量的方法为:
代码:
******@zhyfly:~/bash$ cat 1
xaAsdfasfABC...
21A32ABC...
xxxxABC...
******@zhyfly:~/bash$ cat 1|awk '{a[x++]=$0}END{for(i=0;i<NR;i++)prin
t i,a[i]}'
0 xaAsdfasfABC...
1 21A32ABC...
2 xxxxABC...
******@zhyfly:~/bash$
3,如何把汉字变成类似"%AC%5B"的符号?
引用:
我编 bash script 程序用 wget 下载文件,但有些文件名是中文的,必需把这些中文文件名写成这样的格
式,如"%AC%A1"。怎样把汉字变成这样的编码呢?多谢!
解答参考:(利用 xxd,tr,sed 命令)
引用:
我倒是可以把汉字转成 encode 格式:
xie 0$ echo 论坛| tr -d "\n" | xxd -i | sed -e "s/ 0x/%/g" | tr -d " ,\n"
%c2%%b3
大写的:
xie 0$ echo 论坛| tr -d "\n" | xxd -i | sed -e "s/ 0x/%/g" | tr -d " ,\n" | tr "[a-f]" "[A-F]"
%C2%%B3
不过这会把 url 中允许的正常字符一起编码,所以还要改成只转 url 中不允许的字符才行。
4,怎样将\n 换成换行符??
引用:
发展开源精神,普及 Linux 教育
Crazylinux 工作室
网址:
Crazylinux 工作室
例如有文本如下:
abcd\nabcde
cdef\nmmmini
qqqmad