我很难用字符串分隔几个确切的“字段”,然后将它们放入.txt文件中。我需要从/etc/passwd文件中提取“nologin”用户,这是一个简单的步骤。我使用这个命令:

grep -n 'nologin' /etc/passwd > file1.txt

cat命令给出了一个例子:
2:daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
3:bin:x:2:2:bin:/bin:/usr/sbin/nologin
4:sys:x:3:3:sys:/dev:/usr/sbin/nologin

并保存到file1.txt
现在我必须从file1.txt中提取一个数字(2、3、4)、登录名(daemon、bin、sys)uid和shell。应该是这样的
2:daemon:1:/usr/sbin/nologin
3:bin:2:/usr/sbin/nologin
4:sys:3:/usr/sbin/nologin

我还必须将输出保存到一个*.txt文件中。
我怎样才能做到这一点?

最佳答案

您可以像这样使用cut命令:

cut -d':' -f1 file1.txt > file2.txt

根据man page
-D,--分隔符=Delim
对字段分隔符使用delim而不是tab
-F,--字段=列表
仅选择这些字段;也打印不包含分隔符的任何行,除非指定了-s选项

关于linux - 从文件中搜索和选择字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43008032/

10-11 16:10