如何使用 sed、grep 或其他程序删除文件中标记文本块的所有实例?
如果我有一个包含以下内容的文件:
随机
文本
// START TEXT
内部
文本
// END TEXT
更
随机
// START TEXT
asdf
// END TEXT
文本
如何删除开始/结束行中的所有文本块,生成以下内容?
随机
文本
更多
随机
文本
寻找一种在 linux 上预先创建目录以用于存储大量文件的方法。
我们将使用GUID生成文件 ID - 我需要在 Linux Web 服务器上保留这些文件的副本。我计划使用子目录来拆分文件(它是 ext3)...例如,文件名 055c102b-62fb-4671-a3c7-68b9515ec53e.swf 将位于 /data/files/0/5/5/055c102b- 62fb-4671-a3c7-68b9515ec53e.swf(取前3个字符作为目录名)
我的问题是 - 如何提前创建 /data/files/?/?/?/ 目录?在哪里 ?可以是 az 或 0-9
我的客户让我将一些文件夹部署到他客户网站的一堆主目录中。我使用 Bash 脚本完成了此操作,但最终使用了 root 帐户权限。
我如何制作一个 Bash 脚本来获取 /home/用户下的每个文件夹(不是隐藏文件或文件夹),获取该文件夹的用户和组所有权,然后执行 chown -R {user}.{group} /home /用户?
服务器正在运行 CentOS Linux。
我在 Ubuntu 10.04 上使用 Subversion 1.6.6,运行 bash shell。我想在我的提交消息中插入回车、换行或换行符,以便在阅读日志时,注释的格式正确。当我使用系统编辑器或为提交注释指定一个文件时,它工作正常,但我真正想要的是能够执行以下操作:
svn ci -m "This is the first line\nThis is the second line"
Run Code Online (Sandbox Code Playgroud)
并将评论显示为:
This is the first line
This is the second line
Run Code Online (Sandbox Code Playgroud)
我的例子不起作用,它产生输出:
这是第一行\n这是第二行
那么,有没有办法做到这一点?如果是这样,如何?
我们有一个构建在 CentOS 4 32 位 Linux 上的产品,它可以在 32 位和 64 位 CentOS/RHEL 4 和 5 以及 SLES 10 上未经修改地运行。它也在 SLES 9 64 位上未经修改地运行。[SLES 9 32 位需要不同的 libstdc++。
主二进制可执行文件的名称是 flume
昨天我们尝试将它放在 64 位 Ubuntu 10 上,即使文件在那里并且大小合适,我们也会得到:
-bash: ./flume: No such file or directory
Run Code Online (Sandbox Code Playgroud)
file flume
显示它是一个 32 位 ELF(不记得确切的输出,并且系统位于隔离网络上)
如果放入/usr/local/bin,则:
which flume
/usr/local/bin/flume
Run Code Online (Sandbox Code Playgroud)
我还没有尝试
ldd flume
。
我现在怀疑某个图书馆不存在。
这是一个非常无益的信息,也是我以前从未见过的。
这是 Ubuntu 特有的,还是仅此安装特有的。
我们放弃并转向 RHEL 4 系统,一切都很好。但我确实想知道是什么导致了这种情况。
我就是做不到。如果 * 在变量中,则扩展为当前文件夹中的文件列表。echo "*" 工作正常。
#!/bin/bash
c="GRANT ALL ON \*.* TO '$1'@'localhost';"
mysql < $c
exit 0;
Run Code Online (Sandbox Code Playgroud) 我有以下摘录自用于备份数据库的 bash 脚本
#!/bin/bash
DB=database_name
DBUSER=username
FILENAME=$DB_$(date +%s).sql
Run Code Online (Sandbox Code Playgroud)
我想重新使用的值DB的范围内FILENAME变量赋值,但它不会让我使用替代这种方式。我只是得到文件名的时间戳。
是否有可能实现我想要的,如果是这样,语法是什么?
谢谢。
Bash 4.1能够将历史记录到系统日志中。但是我似乎无法让它在 FreeBSD 8 下工作。
我尝试从端口重新编译 bash,-DWITH_SYSLOG=但无济于事。有没有人设法让日志记录在 FreeBSD 下工作?Linux呢?
我想 su 到另一个用户,使用 expect,然后以该用户身份运行图形程序。我正在使用 kcalc 进行测试:
#!/usr/bin/expect
set timeout 20
spawn su dummy
expect "Password:"
send "PASS\r";
send "kcalc\r"
Run Code Online (Sandbox Code Playgroud)
我还尝试删除最后一行并将 su 更改为“su dummy -c kcalc”,但这也不起作用。我很感激任何帮助。
我想从命令行将 github.com 添加到 known_hosts 文件,因为我正在创建一个 puppet 清单来配置远程服务器。
我试过了:
"ssh-keyscan -H github.com > /home/ubuntu/.ssh/known_hosts"
Run Code Online (Sandbox Code Playgroud)
但是当服务器尝试访问github时:
Failed to add the RSA host key for IP address '207.97.227.239' to the list
of known hosts (/home/ubuntu/.ssh/known_hosts).
Run Code Online (Sandbox Code Playgroud)
我也试过:
"ssh-keyscan -H github.com,207.97.227.239 > /home/ubuntu/.ssh/known_hosts"`
Run Code Online (Sandbox Code Playgroud)
但是访问github抛出:
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)
我确定这没有其他用途,但是如果我 ssh 我的服务器,然后 ssh github 并按照步骤操作,我会收到以下消息Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts,然后它将完美运行。
谢谢