假设我有两个具有共同字段的文件。我想根据在此文件中找到的字段(例如数字字段)对第一个进行排序……但我希望这种重新排序也适用于另一个文件 - 通过公共字段。
举个例子 -完全凭空抓起来;-) - 让我们拿/etc/passwd和/etc/shadow:
/etc/passwd: (……) sshd:x:124:65534::/var/run/sshd:/usr/sbin/nologin sndiod:x:999:29::/var/lib/sndiod:/usr/sbin/nologin dictd:x:125:135:Dictd 服务器,,,:/var/lib/dictd:/bin/false postgres:x:126:136:PostgreSQL 管理员,,,:/var/lib/postgresql:/bin/bash (……)
/etc/shadow: (……) sshd:*:17055:0:99999:7::: sndiod::17055:::::: 字典:*:17055:0:99999:7:: postgres:*:17055:0:99999:7::: (……)
在 UID 上按数字对/etc/passwd 进行排序很容易:
sort -n -t: -k3 /etc/passwd > pw
上面的几行产生:
/etc/passwd: (……) sshd:x:124:65534::/var/run/sshd:/usr/sbin/nologin dictd:x:125:135:Dictd 服务器,,,:/var/lib/dictd:/bin/false postgres:x:126:136:PostgreSQL 管理员,,,:/var/lib/postgresql:/bin/bash sndiod:x:999:29::/var/lib/sndiod:/usr/sbin/nologin (……)
但是,/ etc / shadow文件并不能有一个数字UID场我可以排序后...但它确实-像/ etc / passwd文件-得到了一个用户名,场...
那么有没有办法重新排序/etc/shadow 中的行,以便用户名字段与数字排序 的用户名字段具有相同的顺序/etc/passwd?
sort或类似的东西——可以在该文件中的某个键之后对文件 A进行排序,并同时在两个文件共享的公共字段上对文件 …