当前位置: 技术问答>linux和unix
passwd 文件行读取
来源: 互联网 发布时间:2017-03-23
本文导语: 本帖最后由 julius_lee 于 2012-11-22 16:01:02 编辑 请问passwd文件中如下面的行: hplip:x:105:7:HPLIP system user,,,:/var/run/hplip:/bin/false polkituser:x:108:115:PolicyKit,,,:/var/run/PolicyKit:/bin/false ftp:x:110:120:ftp daemon,,,:/srv/ftp:/bin/false 红色处...
hplip:x:105:7:HPLIP system user,,,:/var/run/hplip:/bin/false
polkituser:x:108:115:PolicyKit,,,:/var/run/PolicyKit:/bin/false
ftp:x:110:120:ftp daemon,,,:/srv/ftp:/bin/false
红色处标记的两个字符串,它们间用空格隔开
如果我想用for line读取该文件会因为这个空格产生问题,比如:
1 #!/bin/bash
2 file=pass
3 num=0
4 for line in `cat $file`
5 do
6 echo "the $num line is $line"
7 num=$(($num+1))
8 done
yee@Loong:~/shell$ sh b.sh
the 0 line is Debian-exim:x:104:110::/var/spool/exim4:/bin/false
the 1 line is hplip:x:105:7:HPLIP
the 2 line is system
the 3 line is user,,,:/var/run/hplip:/bin/false
the 4 line is polkituser:x:108:115:PolicyKit,,,:/var/run/PolicyKit:/bin/false
the 5 line is ftp:x:110:120:ftp
the 6 line is daemon,,,:/srv/ftp:/bin/false
因为该行有空格,有空格就当做另一行的开始,如果我想读取整行如何处理呢?(不想先除去空格,生成中间文件,想一步读取。)
|
while read line
do
echo $line
done
do
echo $line
done