Via 由 [ ] 提供

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