gpt4 book ai didi

linux - 如何使用 bash 删除文件中的前 N ​​行并保留剩余行

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:35 26 4
gpt4 key购买 nike

我正在尝试使用 sed 删除文件中的第一个 block ,并保留剩余的最后几行并将其保存到文件中。但是,文件的最后几行没有保存。

我使用这段代码删除了前 15 行:

sed '1,15d' local_accounts.txt > remaining_accounts.txt

但是,最后几行也被删除了。

local_accounts.txt

dn: uid=Nemuadmin,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: Nemuadmin
uid: Nemuadmin
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 10001
gidNumber: 557
homeDirectory: /home/Nemuadmin
loginShell: /bin/bash
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

dn: uid=toosa,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: toosa
uid: toosa
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 10000
gidNumber: 400
homeDirectory: /home/toosa
loginShell: /bin/bash
shadowMax: 180
shadowWarning: 30
shadowInactive: 0

dn: uid=test_user1,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: test_user1
uid: test_user1
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 10200
gidNumber: 10200
homeDirectory: /home/test_user1
loginShell: /bin/bash
shadowMax: 180
shadowWarning: 30
shadowInactive: 0

dn: uid=test_user2,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: test_user2
uid: test_user2
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 20000
gidNumber: 20000
homeDirectory: /home/test_user2
loginShell: /bin/bash
shadowMax: 180
shadowWarning: 30
shadowInactive: 0

dn: uid=test_user3,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: test_user3
uid: test_user3
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 30000
gidNumber: 30000
homeDirectory: /home/test_user3
loginShell: /bin/bash
shadowMax: 180
shadowWarning: 30
shadowInactive: 0

dn: cn=test_group1,ou=Group,fsFragmentId=Security,fsClusterId=ClusterRoot
objectClass: FSSecGroup
objectClass: posixGroup
objectClass: groupOfNames
objectClass: FSSecAccessControl
objectClass: extensibleObject
cn: test_group1
gidNumber: 10200
member: uid=test_user1,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
memberUid: test_user1

dn: cn=test_group2,ou=Group,fsFragmentId=Security,fsClusterId=ClusterRoot
objectClass: FSSecGroup
objectClass: posixGroup
objectClass: groupOfNames
objectClass: FSSecAccessControl
objectClass: extensibleObject
cn: test_group2
gidNumber: 20000
member: uid=test_user2,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
memberUid: test_user2

dn: cn=test_group3,ou=Group,fsFragmentId=Security,fsClusterId=ClusterRoot
objectClass: FSSecGroup
objectClass: posixGroup
objectClass: groupOfNames
objectClass: FSSecAccessControl
objectClass: extensibleObject
cn: test_group3
gidNumber: 30000
member: uid=test_user3,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
memberUid: test_user3
dn: fssecPermissionId=PAMCLI,fsFragmentId=Permissions,fsFragmentId=Security,fsClusterId=ClusterRoot
fssecAssignedGroupRoleRef: _oms_sudoer_ptally
fssecPermissionCLICommand: /sbin/pam_tally2
objectClass: FSSecPermission
objectClass: FSSecCLIPermission

dn: fssecPermissionId=perm1,fsFragmentId=Permissions,fsFragmentId=Security,fsClusterId=ClusterRoot
objectClass: FSSecPermission

dn: fssecPermissionId=perm2,fsFragmentId=Permissions,fsFragmentId=Security,fsClusterId=ClusterRoot
objectClass: FSSecPermission

dn: fssecPermissionId=perm3,fsFragmentId=Permissions,fsFragmentId=Security,fsClusterId=ClusterRoot
objectClass: FSSecPermission

执行sed命令后:

remaining_accounts.txt

dn: uid=toosa,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: toosa
uid: toosa
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 10000
gidNumber: 400
homeDirectory: /home/toosa
loginShell: /bin/bash
shadowMax: 180
shadowWarning: 30
shadowInactive: 0

dn: uid=test_user1,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: test_user1
uid: test_user1
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 10200
gidNumber: 10200
homeDirectory: /home/test_user1
loginShell: /bin/bash
shadowMax: 180
shadowWarning: 30
shadowInactive: 0

dn: uid=test_user2,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: test_user2
uid: test_user2
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 20000
gidNumber: 20000
homeDirectory: /home/test_user2
loginShell: /bin/bash
shadowMax: 180
shadowWarning: 30
shadowInactive: 0

dn: uid=test_user3,ou=People,fsFragmentId=Security,fsClusterId=ClusterRoot
cn: test_user3
uid: test_user3
objectClass: FSSecAccount
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uidNumber: 30000
gidNumber: 30000
homeDirectory: /home/test_user3
loginShell: /bin/bash
shadowMax: 180
shadowWarning: 30
shadowInactive: 0

如何删除第一个 block 并保留其他 block ?提前谢谢你。

最佳答案

一个简单的替代方法是使用 tail,你可以这样做:

tail -n +15 local_accounts.txt > remaining_accounts.txt

-n +15表示从第15行开始

这将保留文件 local_accounts.txt 并创建 remaining_accounts.txt,其内容与 local_accounts.txt 相同,但仅来自第 15 行.

关于linux - 如何使用 bash 删除文件中的前 N ​​行并保留剩余行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49328306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com