这是我得到的错误,它失败是因为一个变量的值应该是 2(我使用 a 得到这个select * from tabel)。我在那个变量中得到了空格。
+ 0 !=
2
./setjobs[19]: 0: not found.
Run Code Online (Sandbox Code Playgroud)
如何从该变量中删除所有这些空格或换行符?可以tr,,sed或任何帮助?
这就是我正在做的:
set_jobs_count=$(echo "set heading off;
select count(*) from oppar_db
where ( oppar_db_job_name, oppar_db_job_rec ) in ($var) ;" | \
sqlplus -s ${OP_ORA_USER}/${OP_ORA_PASS}@$OPERATIONAL_DB_NAME)
Run Code Online (Sandbox Code Playgroud)
这按建议工作:
| sed 's/[[:space:]]//g'
Run Code Online (Sandbox Code Playgroud)
但我仍然获得一个值,如:
set_jobs_count=
2
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用命令创建补丁
git diff sourcefile >/var/lib/laymab/overlay/category/ebuild/files/thepatch.patch
Run Code Online (Sandbox Code Playgroud)
当我应用补丁时,它给了我
$ patch -v
GNU patch 2.7.5
$ /usr/bin/patch -p1 </var/lib/laymab/overlay/category/ebuild/files/thepatch.patch
patching file sourcefile
Hunk #1 FAILED at 1 (different line endings).
Hunk #2 FAILED at 23 (different line endings).
Hunk #3 FAILED at 47 (different line endings).
Hunk #4 FAILED at 65 (different line endings).
Hunk #5 FAILED at 361 (different line endings).
5 out of 5 hunks FAILED -- saving rejects to file sourcefile.rej
Run Code Online (Sandbox Code Playgroud)
我试图将 dos2unix 应用于 src 文件和补丁文件,但消息没有消失......
UPD:--ignore-whitespace 也无济于事
PATCH COMMAND: …Run Code Online (Sandbox Code Playgroud) 我有一个仅\n用于新行的文件,但我需要它\r\n用于每个新行。我怎样才能做到这一点?
例如,我在 Vim 中使用 解决了它:%s/\n/\r\n/g,但我想使用脚本或命令行应用程序。有什么建议?
我尝试使用sedor查找它grep,但我立即对转义序列解决方法感到困惑(我对这些命令有点陌生)。
如果有兴趣,该申请涉及到我的问题/答案在这里
我刚刚学会了使用命令创建新文件的技巧cat。根据我的测试,如果最后一行后面没有换行符,我必须输入ctrl+d两次才能完成输入,如下所示。
[root@192 ~]# cat > 测试 A 乙 ctrl+d[root@192 ~]# cat > 测试 A b ctrl+dctrl+d[root@192 ~]#
这是预期的吗?为什么会有这种行为?
对 UNIX 非常陌生,但对编程并不陌生。在 MacBook 上使用终端。为了管理和搜索填字游戏的单词列表,我正在尝试使用 Grep 命令及其变体。看起来很简单,但很早就被我认为应该是一个简单的案例所困扰。
当我进入
grep "^COW" masternospaces.txt
Run Code Online (Sandbox Code Playgroud)
我得到了我想要的:所有以 COW 开头的单词的列表。
但是当我进入
grep "COW$" masternospaces.txt
Run Code Online (Sandbox Code Playgroud)
我希望得到一个以 COW 结尾的单词列表(有很多这样的单词),并且根本没有返回任何内容。
该文件是一个纯文本文件,每行只有一个单词(或一个没有空格的单词短语),全部大写。
知道这里会发生什么吗?
我正在编写一个安装脚本,它将作为/bin/sh.
有一行提示输入文件:
read -p "goat may try to change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY
Run Code Online (Sandbox Code Playgroud)
我想把这条长行分成多行,这样每行都不超过 80 个字符。我说的是脚本源代码中的行;与执行脚本时实际打印在屏幕上的行无关!
我试过的:
第一种方法:
read -p "oat may try to change directory if cd fails to do so. " \
"Would you like to add this feature? [Y|n] " REPLY
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它不打印Would you like to add this feature? [Y|n]。
第二种方法:
echo "oat may try to change …Run Code Online (Sandbox Code Playgroud)我理解并接受防御性1 shell 脚本既谨慎又从长远来看更可持续的前提。
此处的许多文本处理问题的答案都遵循这一原则,将非正统文件名的意外情况纳入到答案中;可能包含空格、破折号和换行符。
文件名中的新行有多普遍?具体来说:
[1] 意味着规划和管理尽可能广泛的场景和突发事件......
我正在寻找一种仅在最后一个字符是换行符时执行替换的方法,使用sed.
例如:
lettersAtEndOfLine
Run Code Online (Sandbox Code Playgroud)
被替换,但这不是:
lettersWithCharacterAfter&
Run Code Online (Sandbox Code Playgroud)
由于sed不能很好地与换行符一起使用,所以它并不像
$ sed -E "s/[a-zA-Z]*\n/replace/" file.txt
Run Code Online (Sandbox Code Playgroud)
如何做到这一点?
我有一个名为的文件/tmp/urlFile,其中每行代表一个 url。我正在尝试从文件中读取如下内容:
cat "/tmp/urlFile" | while read url
do
echo $url
done
Run Code Online (Sandbox Code Playgroud)
如果最后一行不以换行符结尾,则不会读取该行。我想知道为什么?
是否可以读取所有行,无论它们是否以新行结束?
我有一个包含以下数据的文本文件,每一行都以|END|.
T|somthing|something|END|T|something2|something2|END|
Run Code Online (Sandbox Code Playgroud)
我tryig更换|END|与\n新行的sed。
sed 's/\|END\|/\n/g' test.txt
Run Code Online (Sandbox Code Playgroud)
但它产生如下错误输出:
T
|
s
o
m
e
...
Run Code Online (Sandbox Code Playgroud)
但我想要的是这个:
T|somthing|something
T|something2|something2
Run Code Online (Sandbox Code Playgroud)
我也尝试过tr。它也没有用。
newlines ×10
sed ×4
shell ×3
grep ×2
shell-script ×2
bash ×1
bourne-shell ×1
cat ×1
diff ×1
filenames ×1
git ×1
patch ×1
string ×1
tr ×1
whitespace ×1