Python中是否有一种简单的方法可以使用空格作为分隔符将字符串转换为列表,但忽略引用文本中的空格?IE:每个单词都被视为一个单独的搜索词,但任何引用的文本都被视为一个词.
我想从bash中的某些字符串中提取版本号而不使用太多额外的包.到目前为止我试过了sed.
这是API:
3.81-8.1ubuntu1.1 should give : 3.81
2.68-1ubuntu2 should give : 2.68
1:1.11.3-1ubuntu2 should give : 1.11.3
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我的sed命令:
echo ... | sed -r 's/.*([0-9\.]+).*/\1/'
Run Code Online (Sandbox Code Playgroud)
然而,开场.*太贪心,尤其是最后一个案例.我已经尝试了一些.*?,并.\{-}没有任何成功.
我可以两次通过,但我宁愿学习如何在一个中完成.
我想为Unix中的目录中的所有文件添加注释.如果我可以使用任何命令组合,请建议解决方案.
我有一个文本文件,可以有X个字段,每个字段用逗号分隔.在我的脚本中,我逐行阅读,检查在该行上填充了多少字段,并确定我需要在该行的末尾追加多少逗号来表示所有字段.例如,文件如下所示:
Address,nbItems,item1,item2,item3,item4,item5,item6,item7
2325988023,7,1,2,3,4,5,6,7
2327036284,5,1,2,3,4,5
2326168436,4,1,2,3,4
Run Code Online (Sandbox Code Playgroud)
应该成为这样的:
Address,nbItems,item1,item2,item3,item4,item5,item6,item7
2325988023,7,1,2,3,4,5,6,7
2327036284,5,1,2,3,4,5,,
2326168436,4,1,2,3,4,,,
Run Code Online (Sandbox Code Playgroud)
我的下面的脚本有效,但看起来非常低效.它是逐行阅读在大文件上有困难吗?导致经济放缓的是它吗?更好的方法吗?
#!/bin/bash
lineNum=0
numFields=`head -1 File.txt | egrep -o "," | wc -l`
cat File.txt | while read LINE
do
lineNum=`expr 1 + $lineNum`
num=`echo $LINE | egrep -o "," | wc -l`
needed=$(( numFields - num ))
for (( i=0 ; i < $needed ; i++ ))
do
sed -i "${lineNum}s/$/,/" File.txt
done
done
Run Code Online (Sandbox Code Playgroud) 我想编写一个命令行工具,如git,它将遵循POSIX标准。这将需要的选项,如--help和-h,--version...等。但是我不知道该怎么做。谁能告诉我如何使用bash脚本执行此操作。请帮我。这对我来说是很新的东西。
例子:如果我的工具名称是Check-code,那么我想使用;
Check-code --help
Run Code Online (Sandbox Code Playgroud)
要么
Check-code --version
Run Code Online (Sandbox Code Playgroud) 我使用linux,bash.
我有一个目录,里面有100个文件夹,每个目录名称不同.
在这100个文件夹中的每个文件夹中都有一个名为first.bars的文件(所以我有100个名为first.bars的文件).虽然所有名为first.bars,但文件实际上略有不同.
我想将所有这些文件移动到一个新文件夹并重命名/编号这些文件,以便我知道哪个文件来自哪个文件夹.所以第一个first.bars文件必须重命名为001.bars,第二个文件必须重命名为002.bars ..等等.
我尝试过以下方法:
ls -d * >> /home/directorywiththe100folders/list.txt
cat list.txt | while read line;
do cd $line;
mv first.bars /home/newfolder
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为我不能在一个文件夹中有100个名称相同的文件.所以我只需要知道如何重命名它们.重命名必须连接到cat list.txt,因为第一行是包含移动和重命名的第一个文件的文件夹.该文件将被称为001.bars.
我有点Bash新手,所以请在这里忍受我.
我有一个由另一个软件(我无法控制)转储的文本文件,列出每个用户访问某些资源的次数,如下所示:
Jim 109 Bob 94 John 92 Sean 91 Mark 85 Richard 84 Jim 79 Bob 70 John 67 Sean 62 Mark 59 Richard 58 Jim 57 Bob 55 John 49 Sean 48 Mark 46 . . .
我的目标是获得这样的输出.
Jim [Total for Jim] Bob [Total for Bob] John [Total for John]
等等.
每次在软件中运行查询时名称都会更改,因此对每个名称进行静态搜索,然后通过wc进行管道传输无效.
我需要编写一个shell脚本来通过插入换行符来重新格式化文件.条件是当我们在文件中遇到逗号时应插入换行符.
例如,如果文件delimiter.txt包含:
这是一个文件,当我们找到逗号时,应该添加一个换行符.
输出应该是:
this
is a file
that should
be added
with a
line break
when we find a
a comma.
Run Code Online (Sandbox Code Playgroud)
可以这样做grep还是awk?
是否可以project使用 MongoDB 的聚合框架进行操作的布尔值?
例如,给定一个像这样的输入文档:
{
"id": 123,
"data": [
{
"val": 1
},
{
"val": 2
},
{
"val": 3
},
{
"val": 4
},
{
"val": 5
}
]
}
Run Code Online (Sandbox Code Playgroud)
$data.val > 3我想返回的操作是:
{
"result": [
{
"bool_val": 0
},
{
"bool_val": 0
},
{
"bool_val": 0
},
{
"bool_val": 1
},
{
"bool_val": 1
}
],
"ok": 1
}
Run Code Online (Sandbox Code Playgroud)
这就是我想出的:
db.test.aggregate([{$match: {id: 123}},
{$unwind: "$data"},
{$project: {"bool_val": {"$data.val": {$gt: 3}}, _id: 0}}
])
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
aggregate …Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本来大规模重置wordpress用户名和密码.密码是使用旧密码存储的,现在随着MySQL和PHP的更新,旧密码不再有效,因此需要重置.
我有一个看起来像这样的文件:
define('DB_USER', 'abc_12345');
define('DB_PASSWORD', 'abc12345');
define('DB_USER', 'def_34589');
define('DB_PASSWORD', 'def34589');
Run Code Online (Sandbox Code Playgroud)
我只需要在单引号内返回值:
DB_USER abc_12345
DB_PASSWORD abc12345
DB_USER def_34589
DB_PASSWORD def34589
Run Code Online (Sandbox Code Playgroud)
现在,我已经查看了类似的问题,但它们都与我正在使用的有点不同.
我尝试过以下方法:
cat file.txt | awk '{print $1,$2}'
Run Code Online (Sandbox Code Playgroud)
返回
define('DB_USER', 'abc_12345');
define('DB_PASSWORD', 'abc12345');
define('DB_USER', 'def_34589');
define('DB_PASSWORD', 'def34589');
Run Code Online (Sandbox Code Playgroud)
我试过了
cat file.txt | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
返回
define('DB_USER',
define('DB_PASSWORD',
Run Code Online (Sandbox Code Playgroud)
我试过了
cat file.txt | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
返回
'abc_12345');
'abc12345');
Run Code Online (Sandbox Code Playgroud)
我也尝试过用grep混合awk
cat file.txt | awk '{print $2}' | grep -P " '*.' "
Run Code Online (Sandbox Code Playgroud)
这不会返回任何东西.