因此,可以使用 cat 轻松地在 bash 中加入文件:
cat *.txt > all.txt
Run Code Online (Sandbox Code Playgroud)
但是如果想在输入文件之间插入一些东西,比如换行怎么办?
在 linux shell 中,我想确保一组特定的文件都以 开头<?,具有确切的字符串并且开头没有其他字符。我怎样才能 grep 或使用其他一些来表达“文件开头”?
编辑:我是通配符,并head没有在同一行给出文件名,所以当我 grep 它时,我看不到文件名。此外,"^<?"似乎没有给出正确的结果;基本上我得到这个:
$> head -1 * | grep "^<?"
<?
<?
<?
<?
<?
...
Run Code Online (Sandbox Code Playgroud)
所有的文件实际上都很好。
我有一个讨厌的小文件,它的名字似乎是单个字符,而那个字符是 \r
我怎样才能删除这个?
这是我得到的ls -bl:
-rw-rwxr--+ 1 root snapplewriters 0 Aug 29 2011 \r
Run Code Online (Sandbox Code Playgroud)
ls -l 只是显示它“?”
bash 如果您运行类似的命令,似乎不会抱怨
$ < some-file-that-exists
Run Code Online (Sandbox Code Playgroud)
似乎什么都没有发生。
你也可以使用
$ <<<"any string"
Run Code Online (Sandbox Code Playgroud)
甚至过程替换。
那么这到底是做什么的,为什么允许这样做。它对任何事情都有用吗?
我已切换到 zsh,如何运行为 bash 编写的脚本?
我不想修改脚本以将 #!/bin/bash 放在脚本的开头,因为它是受版本控制的。
还有其他方法吗?
有问题的脚本行是:
for f in `/bin/ls v/*/s.sh v/*/*/v.sh d/*/*/v.sh 2> /dev/null`
Run Code Online (Sandbox Code Playgroud) 我正在编写一个需要使用 执行的脚本source,因为它的任务是修改环境。在脚本期间,我想使用set -e以便任何错误停止脚本。该脚本如下所示:
#!/bin/bash
set -e
# do something
cd somewhere
source anotherScript
Run Code Online (Sandbox Code Playgroud)
问题是set -e在脚本完成后自然保持有效。set当脚本停止时(以任何方式 - 成功完成或出错),我如何确保更改的选项正确恢复到其先前的值?
chmod +x file 将文件从 rw-r--r-- 更改为 rwxr-xrx 但实际上我只想要 rwx-r--r-- 这可能吗?
在Bash的“Emacs 模式”( set -o emacs) 中,我可以在我最喜欢的外部 $EDITOR 中编辑当前命令行。我所要做的就是按Ctrl+X然后Ctrl+ E。
但是,因为我已经切换到 Bash 的“vi 模式”( set -o vi),所以这个按键序列没有任何作用。在“vi 模式”下,如何启动外部编辑器以编写更长的命令?
对于具有相同结构的数万行,我想(例如)从这里开始:
abcd 12345 qwerty asdfg
Run Code Online (Sandbox Code Playgroud)
...到这里:
abcd 12345,qwerty asdfg
Run Code Online (Sandbox Code Playgroud)
...和
sed 's/[0-9]\ [A-Z]/,/g'
Run Code Online (Sandbox Code Playgroud)
我可以匹配 rigth 空间加上其周围的字符 (5 q),但在替换中我得到(显然):
abcd 1234,werty asdfg
Run Code Online (Sandbox Code Playgroud)
另外,我更喜欢在 linux shell 中执行此操作
我怎么能只匹配和替换每一行前面有一个数字后跟一个字母的空格?你会建议我使用另一种工具(甚至方法)来完成这项工作吗?
我正在处理一个命令,该命令将 sed 中的所有数字 0-9 替换为其相应的字母。我知道我做错了什么,但 sed 并没有将替换正则表达式解释为字符串文字以外的任何东西。
我正在使用的命令是 sed -r 's/[0-9]/[A-J]/g' log > ~/output.txt
这对我来说似乎很简单,但我已经坚持了大约一个小时。我收到的输出只是用字符串“[AJ]”替换了 0-9
bash ×10
command-line ×3
linux ×3
regex ×2
sed ×2
chmod ×1
filesystems ×1
grep ×1
key-binding ×1
readline ×1
script ×1
text-editors ×1
vi ×1
zsh ×1