小编Sun*_*eep的帖子

如何在python中简化if条件?

我想知道是否有更简单的方法来编写if语句的条件.有点像item1, item2 == "wood":.我目前有这个代码:

item1 = input("item1: ")
item2 = input("item2: ")

if item1 == "wood" and item2 == "wood":
    print("You created a stick")
Run Code Online (Sandbox Code Playgroud)

python if-statement simplify conditional-statements

1
推荐指数
1
解决办法
127
查看次数

使用 sed 过滤列表中的学生

我有一份学生名单,已将其保存到文本文件中students.txt

John Doe Marketing Junior B
Betty Metty Engineering Junior A
James Names Nursing Sophomore B
Bob Nob History Freshman B
Hope Nope Engineering C
Run Code Online (Sandbox Code Playgroud)

这可能非常简单,但由于我是 shell 脚本编写的初学者,什么 sed 模式命令可以打印出专业为A(字母@结尾)的人(仅名字和姓氏)?

如果您可以链接一个有用的网站来获取与列表相关的 sed 模式搜索规则,那就太好了。

使用 vim,Ubuntu 16.04

vim bash ubuntu sed

1
推荐指数
1
解决办法
6102
查看次数

更改第一行的输出字段分隔符

我有一个这样的文件

name|age
Bob|30
Tom|50
Cindy|10
Run Code Online (Sandbox Code Playgroud)

我希望第一行有一个不同的分隔符“^”。

name|age
Bob|30
Tom|50
Cindy|10
Run Code Online (Sandbox Code Playgroud)

但我不断得到

^n^a^m^e^|^a^g^e^
Bob|30
Tom|50
Cindy|10
Run Code Online (Sandbox Code Playgroud)

期望的输出是

name^age
Bob|30
Tom|50
Cindy|10
Run Code Online (Sandbox Code Playgroud)

awk

1
推荐指数
1
解决办法
55
查看次数

使用 sed 或 awk 用空格填充正则表达式

我有一个文件,其中两个字段用 分隔:,两个字段的长度都不同,第二个字段可以包含各种字符(用户输入)。我希望第一个字段正确填充空格到 15 个字符的固定长度,对于第一个字段,我有一个有效的 regex @.[A-Z0-9]{4,12}

样本:

@ABC123:"wild things here"
@7X3Z:"":":@":";:*:-user input:""
@99999X999:"also, imagine: unicode, yay!"
Run Code Online (Sandbox Code Playgroud)

所需的输出:

@ABC123        :"wild things here"
@7X3Z          :"":":@":";:*:-user input:""
@99999X999     :"also, imagine: unicode, yay!"
Run Code Online (Sandbox Code Playgroud)

有很多示例如何对数字进行零填充,但令人惊讶的是,关于常规填充正则表达式或字段的示例并不多,使用(最好)sed 或 awk 有什么帮助吗?

awk sed padding

0
推荐指数
1
解决办法
73
查看次数

如何将Python中的列表与自身结合起来?

我有一份清单

L=[['g1','g2'],['g3'],['g4','g5','g6']]
Run Code Online (Sandbox Code Playgroud)

现在我想要

L*L=[['g1','g2','g3'],['g1','g2','g4','g5','g6'],['g3','g4','g5','g6']]
Run Code Online (Sandbox Code Playgroud)

我如何在Python 3.5中完成它

python list

-1
推荐指数
1
解决办法
64
查看次数

根据另一列值更改列

我有一个包含数百条这样的记录的文件

100,502030,0,444,RSVYU,10
101,501412,1,555,DDGTH,11
102,502269,0,222,DDERF,60
103,508877,2,111,SDEFV,23
Run Code Online (Sandbox Code Playgroud)

如果第 3列的值为0,如何将第 4列的值替换为000

我研究了很多,找不到解决方案。到目前为止我得到了这个

cat testfile.txt | sed -n -r 's/^[0-9]*,[0-9]*,0/000/p'
Run Code Online (Sandbox Code Playgroud)

但它取代了第一部分

bash awk text-processing sed

-2
推荐指数
1
解决办法
1343
查看次数