相关疑难解决方法(0)

如何使用'cut'找到最后一个字段

使用sed使用awk,当字段数量未知或每行更改时,如何获取最后一个字段? cut

linux bash cut

266
推荐指数
7
解决办法
22万
查看次数

如何在双引号内逃避双引号?

任何人都可以告诉我如何在bash中的双字符串中避免双引号?

例如在我的shell脚本中

#!/bin/bash

dbload="load data local infile \"'gfpoint.csv'\" into table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY \"'\n'\" IGNORE 1 LINES"
Run Code Online (Sandbox Code Playgroud)

我无法\"正确使用双引号转义来获取ENCLOSED BY .我不能对我的变量使用单引号,因为我想使用变量$dbtable.

bash quotes

260
推荐指数
7
解决办法
34万
查看次数

在Python中运行Bash命令

在我的本地机器上,我运行一个包含这一行的python脚本

bashCommand = "cwm --rdf test.rdf --ntriples > test.nt"
os.system(bashCommand)
Run Code Online (Sandbox Code Playgroud)

这很好用.

然后我在服务器上运行相同的代码,我收到以下错误消息

'import site' failed; use -v for traceback
Traceback (most recent call last):
File "/usr/bin/cwm", line 48, in <module>
from swap import  diag
ImportError: No module named swap
Run Code Online (Sandbox Code Playgroud)

所以我所做的就是插入一个"print bashCommand",它在使用os.system()运行它之前打印我,而不是终端中的命令.

当然,我再次得到错误(由os.system(bashCommand)引起)但在该错误之前它在终端中打印命令.然后我只是复制了那个输出并在终端上做了一个复制粘贴,然后点击回车就可以了......

有没有人知道发生了什么?

python bash

260
推荐指数
8
解决办法
47万
查看次数

子进程中'shell = True'的实际含义

我用subprocess模块调用不同的进程.但是,我有一个问题.

在以下代码中:

callProcess = subprocess.Popen(['ls', '-l'], shell=True)
Run Code Online (Sandbox Code Playgroud)

callProcess = subprocess.Popen(['ls', '-l']) # without shell
Run Code Online (Sandbox Code Playgroud)

两者都有效.阅读文档后,我开始知道这shell=True意味着通过shell执行代码.这意味着在缺席的情况下,该过程将直接启动.

那么我应该更喜欢我的情况 - 我需要运行一个进程并获得其输出.从shell内部或外部调用它有什么好处.

python subprocess

236
推荐指数
5
解决办法
14万
查看次数

使用空格迭代文件列表

我想迭代一个文件列表.这个列表是find命令的结果,所以我想出了:

getlist() {
  for f in $(find . -iname "foo*")
  do
    echo "File found: $f"
    # do something useful
  done
}
Run Code Online (Sandbox Code Playgroud)

没关系,除非文件名中有空格:

$ ls
foo_bar_baz.txt
foo bar baz.txt

$ getlist
File found: foo_bar_baz.txt
File found: foo
File found: bar
File found: baz.txt
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能避免空格分裂?

linux bash shell

185
推荐指数
6
解决办法
9万
查看次数

if [](方括号)中"[:太多参数"错误的含义

我找不到任何一个简单直接的资源,用于解释以下BASH shell错误的含义和修复,所以我发布了我在研究之后发现的内容.

错误:

-bash: [: too many arguments
Run Code Online (Sandbox Code Playgroud)

Google友好版: bash open square bracket colon too many arguments.

上下文:单个方括号中的if条件,带有一个简单的比较运算符,如equals,大于等,例如:

VARIABLE=$(/some/command);
if [ $VARIABLE == 0 ]; then
  # some action
fi 
Run Code Online (Sandbox Code Playgroud)

bash arguments if-statement

185
推荐指数
5
解决办法
22万
查看次数

如何对目录中的所有文件执行grep操作

使用xenserver,我想对目录中的每个文件执行命令,从命令输出中删除一些东西并将其附加到文件中.

我清楚我想要使用的命令以及如何根据需要grep out string.

但是我不清楚的是我如何让它在每个文件上执行此命令,转到下一个文件,直到找不到更多文件.

linux shell grep

185
推荐指数
4
解决办法
27万
查看次数

使用Bash时需要转义哪些字符?

是否有任何需要在Bash中转义的完整字符列表?可以用它来检查sed吗?

特别是,我正在检查是否%需要转义.我试过了

echo "h%h" | sed 's/%/i/g'
Run Code Online (Sandbox Code Playgroud)

工作得很好,没有逃脱%.这是否意味着%不需要逃脱?这是检查必要性的好方法吗?

而更普遍的:它们是相同的字符,以逃避shellbash

unix bash shell escaping special-characters

173
推荐指数
7
解决办法
29万
查看次数

如何从Bash中的字符串中删除最后n个字符?

var在一个包含字符串的Bash脚本中有一个变量,如:

echo $var
"some string.rtf"
Run Code Online (Sandbox Code Playgroud)

我想删除此字符串的最后4个字符并将结果分配给新变量var2,以便

echo $var2
"some string"
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

bash

163
推荐指数
11
解决办法
22万
查看次数

获得"模糊重定向"错误

我的Bash脚本中的以下行

 echo $AAAA"     "$DDDD"         "$MOL_TAG  >>  ${OUPUT_RESULTS}
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

 line 46: ${OUPUT_RESULTS}: ambiguous redirect
Run Code Online (Sandbox Code Playgroud)

为什么?

bash

155
推荐指数
5
解决办法
25万
查看次数