我需要删除包含“+”的文件行,但前提是它包含在文本中,这意味着如果它位于开头或结尾,则不得删除。
文件:
Hello
World
gol+d
fi+sh
+foo
bar+
输出:
Hello
World
+foo
bar+
我尝试过使用sed'/ - / d',但这会删除旁边带有“+”的所有单词,并在中间留下“+”,与我的预期结果相反。< / p>
尝试找到问题的最快解决方案。这可以使用grep或sed来完成,但任何解决方案都会非常感谢。
答案 0 :(得分:3)
...
handleFiltering(filterType, list) {
list = list || this.state.list;
const filterTypes = {
allTasks: () => list,
yourTasks: () => (list.filter(item => item.assignedTo === this.userId)),
assignedTasks: () => (list.filter(item => item.createdBy === this.userId)),
}
this.setState(() => {
return { filteredList: filterTypes[filterType]() }
});
}
...
的这些简单3条件可能对您有所帮助。
class foo:
def __init__(self,p1,p2):
self.a1 = p1
self.a2 = p2
def __eq__(self, other):
return self.__dict__ == other.__dict__
def main():
o1=foo("lucy","jack")
o2=foo('lucy','jack')
print(o1==o2)
main()
说明: 通过执行awk
检查是否有任何行从awk '/^+/ || /+$/ || !/+/' Input_file
开始或任何行以+
结尾执行/^+/
或任何行没有+
+$
然后+
中没有提到任何操作,因此默认打印当前行将会发生(这将打印当前行)线)。
输出如下。
!/+/
答案 1 :(得分:2)
perl -ne 'print if not /^.+\+.+$/' input_file
测试
perl -ne 'print if not /^.+\+.+$/' input_file >output_file
创建输出文件
perl -ni -e 'print if not /^.+\+.+$/' file
让perl将文件固定到位
-n告诉perl不要打印该行,除非你告诉它。正则表达式为^
行的开头,.+
任意一个或多个字符,\+
文字+,$
行尾。您可能希望将.
中的.+
替换为更具体的字符,例如“任何字母数字字符”或更符合您要求的内容。你可以谷歌perl特殊字符。
sed对此更容易,但我老实说不知道怎么做而不留空白。