免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3944 | 回复: 12
打印 上一主题 下一主题

[文本处理] 问一下这个shell及一点途径 [复制链接]

论坛徽章:
1
水瓶座
日期:2013-10-22 22:55:18
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-07 16:57 |只看该作者 |倒序浏览
1.在linux-shell书中有一个
for line in /etc/passwd
do
echo $line >> /tmp/workspace/b.txt
done

为什么只是复制了"/etc/passwd"的路途到b.txt中,它说应该是把/etc/passwd的内容复制过去
2.shell是不是相当于javascript之类的 如果要对linux下编程有个比较全面的把握应该怎么个步骤

论坛徽章:
1
辰龙
日期:2014-12-17 15:54:35
2 [报告]
发表于 2013-11-07 17:49 |只看该作者
虽然不太懂shell,但是目测你这个shell的结果就是将“/etc/passwd”这段文字追加到b.txt
如果是将/etc/passwd的内容复制过去,用cat /etc/passwd >> b.txt似乎就够了,为什么是要使用循环语句呢?
难道LZ是想将/etc/passwd中新添加的内容复制到b.txt

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
3 [报告]
发表于 2013-11-07 21:54 |只看该作者
回复 1# Simdanfeg

目测一下:
  1. while read line
  2. do
  3. echo $line >> /tmp/workspace/b.txt
  4. done </etc/passwd
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
4 [报告]
发表于 2013-11-07 22:19 |只看该作者
for line in /etc/passwd → for line in `cat /etc/passwd`
for循环并不会自动读文件,必须我们事先cat了才行。

论坛徽章:
0
5 [报告]
发表于 2013-11-08 00:37 |只看该作者
for line in /etc/passwd,这里的/etc/passwd不是一个文件,而是一个字符串

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2013-11-08 07:40 |只看该作者
如果要对linux下编程有个比较全面的把握应该怎么个步骤

多看教程
多来shell版块切磋交流

论坛徽章:
1
水瓶座
日期:2013-10-22 22:55:18
7 [报告]
发表于 2013-11-08 10:34 |只看该作者
回复 4# yestreenstars


    表示cat了不行

    用cat /etc/passwd >> b.txt追加内容过去了

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
8 [报告]
发表于 2013-11-08 10:41 |只看该作者
本帖最后由 yestreenstars 于 2013-11-08 10:42 编辑

回复 7# Simdanfeg
  1. [root@localhost ~]# cat t
  2. for line in `cat /etc/passwd`
  3. do
  4. echo $line >> /tmp/workspace/b.txt
  5. done
  6. [root@localhost ~]# cat /tmp/workspace/b.txt
  7. [root@localhost ~]# ./t
  8. [root@localhost ~]# cat /tmp/workspace/b.txt
  9. root:x:0:0:root:/root:/bin/bash
  10. bin:x:1:1:bin:/bin:/sbin/nologin
  11. daemon:x:2:2:daemon:/sbin:/sbin/nologin
  12. adm:x:3:4:adm:/var/adm:/sbin/nologin
  13. lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  14. sync:x:5:0:sync:/sbin:/bin/sync
  15. shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
  16. halt:x:7:0:halt:/sbin:/sbin/halt
  17. mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
  18. uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
  19. operator:x:11:0:operator:/root:/sbin/nologin
  20. games:x:12:100:games:/usr/games:/sbin/nologin
  21. gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
  22. ftp:x:14:50:FTP
  23. User:/var/ftp:/sbin/nologin
  24. nobody:x:99:99:Nobody:/:/sbin/nologin
  25. vcsa:x:69:69:virtual
  26. console
  27. memory
  28. owner:/dev:/sbin/nologin
  29. saslauth:x:499:76:"Saslauthd
  30. user":/var/empty/saslauth:/sbin/nologin
  31. postfix:x:89:89::/var/spool/postfix:/sbin/nologin
  32. sshd:x:74:74:Privilege-separated
  33. SSH:/var/empty/sshd:/sbin/nologin
  34. dbus:x:81:81:System
  35. message
  36. bus:/:/sbin/nologin
  37. avahi:x:70:70:Avahi
  38. mDNS/DNS-SD
  39. Stack:/var/run/avahi-daemon:/sbin/nologin
  40. avahi-autoipd:x:170:170:Avahi
  41. IPv4LL
  42. Stack:/var/lib/avahi-autoipd:/sbin/nologin
  43. rtkit:x:498:496:RealtimeKit:/proc:/sbin/nologin
  44. pulse:x:497:495:PulseAudio
  45. System
  46. Daemon:/var/run/pulse:/sbin/nologin
  47. haldaemon:x:68:68:HAL
  48. daemon:/:/sbin/nologin
  49. gdm:x:42:42::/var/lib/gdm:/sbin/nologin
  50. ntp:x:38:38::/etc/ntp:/sbin/nologin
  51. Jeson:x:500:500:Jeson
  52. Guo:/home/Jeson:/bin/bash
  53. test:x:501:501::/home/test:/sbin/nologin
  54. vuser:x:502:502::/var/ftp/vuserdir:/sbin/nologin
  55. test1:x:503:503::/home/test1:/bin/bash
  56. [root@localhost ~]#
复制代码

论坛徽章:
1
水瓶座
日期:2013-10-22 22:55:18
9 [报告]
发表于 2013-11-08 11:13 |只看该作者
回复 8# yestreenstars


    for line in 'cat /etc/passwd' 真心读不出内容,只能读出路径(centos6.4)
    for line in $(cat /etc/passwd)这样读得出
    while read line也能读出来

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
10 [报告]
发表于 2013-11-08 11:20 |只看该作者
回复 9# Simdanfeg
你用的是单引号,我用的可是反引号,别搞错了~反引号在ESC键下面~一对反引号和$()的效果是一样的,都是优先运行~

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP