返回首页 shell 脚本编程

shell 学习十二天---行与字符串

行 V.S.字符串

大部分建议等程序都是处理输入数据的行,在这些情况下,不会有内嵌的换行字符出现在将要匹配的数据中,^与$则分别表示行的开头与结尾.

很多应用程序会将数据是位记录与字段的结合.一条记录指的是相关信息的翻个集合,例如以企业来说,记录可能含有顾客,供应商以及员工等数据,以学校来说,则可能有学生数据.而字段指的就是记录的组成部分,例如姓名或者街道地址.

linux 鼓励使用文本类型数据,因此系统上最常见的数据存储类型就是文本了,在文本下,一行表示一天记录.一行内分割字段的两种惯例是:
第一种:空格或者 tab 键(制表符).
name sex
syx M
第二种是使用特定的定界符来分割字段,例如冒号
name:sex
syx:M
两种方式各有优缺点.最明显的不同时是在处理多个连续重复的戒定福之时.使用空白分隔时,通常多个连续出现的空格或制表字符都看做一个定界符.濡染,若使用的特殊字符分隔,则每个定界符都会隔开一个字段.

以定界符分割字段最好的例子就是/etc/passwd,在这个文件里,一行标识系统的一个用户,每个字段都是以冒号分隔.

syx5:x:511:513::/home/syx5:/bin/bash.

该文件含有七个字段,含义分别如下

  • 1:用户名称
  • 2:加密后的密码(如账号为停用状态,此处为一个星号,或者若加密后的密码 文件存储于另外的/etc/shadow 里,则这里可能是其他字符)
  • 3:用户的 ID 编号
  • 4:用户组的 ID 编号
  • 5:用户的姓名,有时恢复其他的相关数据(电话号,办公室号码)
  • 6:根目录
  • 7:登陆的 shell