- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有几个名为 submit.txt
的 .txt 文件,其中有一行
bsub -q l ./dolist.csh
我想从我现在正在做的所有这些文件中删除这一行,但它给了我以下错误:
sed: -e expression #1, char 14: unknown command: `m'
使用的代码是:
#!/bin/bash
for(( x=7; x<=65 ; x+=2))
do
cd arm_$x
sed -i '/bsub -q l ./dolist.csh/d' submit.txt
cd ../
done
请告诉我这里出了什么问题
最佳答案
如果/.../
命令的模式包含/
,它破坏了语法。一种解决方案是使用 \
转义嵌入的 /
:
sed -i '/bsub -q l \.\/dolist\.csh/d' submit.txt
另一种选择是为 /.../
命令使用不同的定界符。其语法为 \?...?
其中 ?
可以是任何字符(但通常使用 ?
),例如:
sed -i '\?bsub -q l \./dolist\.csh?d' submit.txt
当您有多个嵌入的 /
并且将它们全部转义不切实际或者命令将变得难以阅读时,此语法非常有用。
请注意,在这两个示例中,我还转义了所有 .
字符,因为它们在正则表达式中具有特殊含义,可以匹配任何字符,而不仅仅是一个点。如果您不对 .
进行转义,则像 bsub -q l x/dolistycsh
这样的行也会错误地匹配。尽管您可能不希望文件中出现这样的行,准确是好事。
关于linux - 从 cshell 中的 .txt 文件中删除特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45115793/
我在办公室用的是Cshell,好像没有逆向增量搜索历史。有什么方法可以在 cshell 中启用 reverse-i-search(就像 bash 中的那样)。 谢谢。 最佳答案 我假设您正在使用 tc
我有一个简短的文本文件,其语法如下: FileName: some name Version: 3 Length: 45 hello, this is an irrelevant, unimporta
我在 c-shell 中遇到了一个奇怪的行为:编写以下行时,我得到了我期望的行为: ls -l | grep $USER | somescript `awk -F' ' '{print $1}
我有一个 bash 脚本,需要在其中的 cshell 中运行一些命令。 #!/bin/bash echo entering_to_cshell csh echo in_cshell exit echo
我才知道 .sh 文件不使用 set 并且 = 周围的空格是不允许的,而这是允许的在 .csh 文件中。 有什么地方可以让我找到所有这些细微差别吗? 最佳答案 文档? Csh 和 sh 可能看起来很相
我知道 ls 有一个选项: ls --color ...这将在 c-shell 中为文件、目录、链接等显示不同的颜色,但我想知道是否有办法自定义 ls 的输出,以便匹配 *.foo 的文件显示为红色,
我有几个名为 submit.txt 的 .txt 文件,其中有一行 bsub -q l ./dolist.csh 我想从我现在正在做的所有这些文件中删除这一行,但它给了我以下错误: sed: -e e
我有一个应该很简单的问题,但我无法在任何地方找到解决方案。 我正在尝试做一些像在 bash 脚本中设置和环境变量一样简单的事情。从 bash 终端运行脚本它工作正常,但是从 tcsh 运行它,这是我正
跟进自 my previous question ,为什么 CShell 与 C 如此不同? 4 - 3 + 1 = 2 在 C 中。 4 - 3 + 1 = 0 在 CShell 中。 有什么想法吗
我是一名优秀的程序员,十分优秀!