首页
\
问答
\
从Bash文件中删除重复出现的行的最佳方法是什么?(What is the best way of removing reoccurring lines from a file in Bash?)
从Bash文件中删除重复出现的行的最佳方法是什么?(What is the best way of removing reoccurring lines from a file in Bash?)
伙计们,
我有一个包含ldap条目的文件,我想从第二个事件中删除“版本:1”行。 我知道sed可以做这样的事情,但因为我很新,所以我不知道该怎么做。 这是一台Solaris 10机器,该文件如下所示:
version: 1 dn: uid=tuser1,ou=people,o=example.com,o=isp cn: tuser1 uidNumber: 3 gidNumber: 3 homeDirectory: /export/home/tuser1 loginShell: /bin/sh objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top uid: tuser1 shadowLastChange: userPassword: version: 1 dn: uid=tuser2,ou=people,o=example.com,o=isp uidNumber: 20 cn: tuser1 gidNumber: 3 homeDirectory: /export/home/tuser2 loginShell: /bin/sh objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top uid: tuser1 shadowLastChange: userPassword: version: 1 dn: uid=tuser3,ou=people,o=example.com,o=isp uidNumber: 10 cn: tuser3 gidNumber: 3 homeDirectory: /export/home/tuser3 loginShell: /bin/sh objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top uid: tuser3 shadowLastChange: userPassword: version: 1 dn: uid=loperp,ou=people,o=example.com,o=isp uid: loperp userPassword: objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top sn: pop cn: loper version: 1 dn: uid=tuser4,ou=people,o=example.com,o=isp userPassword: uid: tuser4 objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top sn: User4 cn: Test
Folks,
I have a file that contains ldap entries and I want to remove "version: 1" lines from the second occurrence and on. I know sed can do things like this, but since I am very new, I don't know how to proceed. This is a Solaris 10 machine and the file looks like as follows:
version: 1 dn: uid=tuser1,ou=people,o=example.com,o=isp cn: tuser1 uidNumber: 3 gidNumber: 3 homeDirectory: /export/home/tuser1 loginShell: /bin/sh objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top uid: tuser1 shadowLastChange: userPassword: version: 1 dn: uid=tuser2,ou=people,o=example.com,o=isp uidNumber: 20 cn: tuser1 gidNumber: 3 homeDirectory: /export/home/tuser2 loginShell: /bin/sh objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top uid: tuser1 shadowLastChange: userPassword: version: 1 dn: uid=tuser3,ou=people,o=example.com,o=isp uidNumber: 10 cn: tuser3 gidNumber: 3 homeDirectory: /export/home/tuser3 loginShell: /bin/sh objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top uid: tuser3 shadowLastChange: userPassword: version: 1 dn: uid=loperp,ou=people,o=example.com,o=isp uid: loperp userPassword: objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top sn: pop cn: loper version: 1 dn: uid=tuser4,ou=people,o=example.com,o=isp userPassword: uid: tuser4 objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top sn: User4 cn: Test
原文:https://stackoverflow.com/questions/3087979
更新时间:2022-05-27 07:05
最满意答案
this.test
是一个函数,而不是一个数组。 尝试先调用它:{this.test().map(list => <p> {list.text} </p>)}
this.test
is a function, not an array. Try to call it first:{this.test().map(list => <p> {list.text} </p>)}
相关问答
更多-
React映射多个数组(React mapping multiple arrays)[2021-12-14]
而不是试图将对象转换为数组,只需将其剪切并直接通过Object.keys数组循环。 render () (-
{Object.keys(this.props.data).map((propKey) => {
-
{this.props.data[propKey]}
-
{Object.keys(this.props.data[propKey]).map((ch ...
-
{this.props.data[propKey]}
-
理想情况下,您将手动指定每个键。 {(schoolData.student || []).map(student => (
- Name: {student.name}
- Grade: {student.grade}
-
您的shuffle()函数正在对数组进行混洗,这意味着它正在更新this.props.data而不是制作一个单独的混洗版本。 直接更新任何props或state的值通常是一个坏主意,因为它会导致这样的奇怪问题。 如果你想让shuffle函数返回一个混洗的副本,你可以在该函数的顶部添加一行array = array.slice() 。 如果你宁愿离开shuffle ,你可以使用shuffle(this.props.data.slice()).map(...)或shuffle(this.props.data.m ...
-
问题与responseData ,它是一个对象不是数组,尝试使用 details:responseData.meta.questions Issue is with responseData, it is an object not array, try with details:responseData.meta.questions
-
将您的forEach()更改为map() 。 forEach()函数没有返回值,所以如果你从那里返回任何东西,它就会被扔掉。 map()函数将收集所有返回值(包括undefined如果不返回任何内容)并将它们作为数组返回。 在你的情况下,你需要使用map() ,然后在地图后面添加.filter(Boolean) ,以删除所有undefined的场景,并且不返回任何东西。 event && interests && interests.map(interest => /* your code */).filt ...
-
在你的情况下应该工作正常: BooksAPI.search(query).then(res => { if (res instanceof Array && res.length > 0) { booksOnShelves.forEach((book) => { const correspondingRes = res.find((item) => { return (item.id === book.id) }); if (correspondingRes) { book. ...
-
this.test是一个函数,而不是一个数组。 尝试先调用它: {this.test().map(list =>
{list.text}
)} this.test is a function, not an array. Try to call it first: {this.test().map(list =>{list.text}
)} -
它应该是这样的 getInitialState: function() { return { items: [] }; }, renderArticleHeadline: function(article) { return (
- {article.headline}
); }, componentDidMount: function() { this.fetchFront ... -
确保地图的父容器具有明确的高度和宽度大小。 如果没有这些更改,地图就会显示在那里。 Make sure the parent container of the map has explicit height and width sizes. The map is there it just won't show without these changes.
-
问题不在于更改密钥的cloneElement 。 如文档中所述,cloneElement保留原始密钥。 它的React.Children.map它添加了一个前缀。 如果您不想更改密钥,请使用forEach而不是map 这是React Code的摘录: function escape(key) { var escapeRegex = /[=:]/g; var escaperLookup = { '=': '=0', ':': '=2', }; var escapedString ...