
#!/bin/bash
while read line
do
eval "$line" 2>/dev/null
done < atxt
echo $b
1、在linux目录/root下建立一个txt文件,内容如下,使用|竖线分割,作为我们的实验数据样本。
2、sed用法、sed-n'xp'datatxt;显示文件X行数据,获取第18行数据,即为sed-n'18p'datatxt。
3、sed-n'开始行,结束行p'datatxt;显示文件X行到Y行的内容:命令:sed-n'10,18p'datatxt。
4、head/tail用法。tail用法:tail经常用来查看文件末尾的数据,在shell中可以获取文本中指定数据行。tail-n-3datatxt获取文件最好3行数据。tail-n+3datatxt获取文件3到最后一行数据。
5、head用法:head经常用来显示文本的前n行数据。head-n10datatxt显示文本请10行数据。
6、tail和head的结合使用:例如获取文本倒数第二行数据,结果如图所示。命令:tail-n2datatxt|head-n1。
7、awk用法、awk在文本处理方面有着强大的功能,配合脚本使用,可以打印指定行和列。awk'NR==18{print}'datatxt。NR指定行号。
假如在当前面目录下有1txt和2txt,现在我们把它输出到3txt,具体为:
#!/bin/bashecho "start copy file "
find / -name "txt" | xargs cat > 3txt
echo "done !"
你那个出问题应该是因为find在查找的时候没有加引号还有后面再查找的时候要使用管道命令啊
#!/bin/bash
#添加用户组
groupadd YR1 2>> /var/log/groupaddlog
groupadd YR2 2>> /var/log/groupaddlog
#添加用户
declare -l user_name
N=1000
M=2000
while read line;do
year=`echo $line | awk '{ print $NF }'`
user_name=`echo $line | awk -F',' '{ print substr($1,1,1)$2}'`
password=`echo $line | awk -F',' '{ print substr($1,1,1)substr($2,1,1)"/"$3}' | awk -F'/' '{ print $1$4$2$3}'`
full_name=`echo $line | awk -F',' '{print $1","$2}' | sed 's@\B[A-Z]@\l&@g'`
if [ $year = '1' ];then
useradd -g YR1 -u $N $user_name;echo $password | passwd --stdin $user_name 2>> /var/log/useraddlog
N=$[$N+1]
else
useradd -g YR2 -u $M $user_name;echo $password | passwd --stdin $user_name 2>> /var/log/useraddlog
M=$[$M+1]
fi
done < infotxt
没明白第6条添加到命令文件中是啥意思,但是里边已经按照格式将全名定义到变量full_name里了。infotxt是给出的txt文件内容。
text1txt文件如下#执行代码
grep -A 1 "\[PARM_" text1txt
#得到匹配行和他下面一行#执行代码
grep -A 1 "\[PARM_" text1txt |awk -F ":" '$1~/PATH/{print $2}'
#得到匹配行下面一行的路径
以上就是关于shell 遍历txt文件,取变量全部的内容,包括:shell 遍历txt文件,取变量、利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容、LINUX下shell 如何将文件夹下的所有txt文件输出到一个txt文件下去等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)