我正在尝试 grep 日志文件以仅显示与某个会话 ID 匹配的行。到目前为止,它工作得很好。但是,当我获得 grep 命令的结果时,我没有按照条目出现的顺序获得条目。
如果目录中的日志文件有以下数据:
SESSNUM=4437 login.jsp
SESSNUM=4437 welcome.jsp
SESSNUM=4437 info.jsp
SESSNUM=4437 logout.jsp
Run Code Online (Sandbox Code Playgroud)
我输入:
grep SESSNUM=4437 *
Run Code Online (Sandbox Code Playgroud)
我得到这个信息:
SESSNUM=4437 logout.jsp
SESSNUM=4437 welcome.jsp
SESSNUM=4437 login.jsp
SESSNUM=4437 info.jsp
Run Code Online (Sandbox Code Playgroud)
有没有办法让 grep 按照它们在日志文件中出现的顺序显示匹配的行?
谢谢!
IVR复仇者联盟
我是新手,所以问题很简单。通过腻子连接到服务器后,我想执行一些命令。假设该命令将执行很长时间(例如从大型存档或 mysql 备份中提取文件)。有没有办法以这样的方式执行命令,即在我关闭腻子后它不会被中止!
先感谢您!
我有一个需求,例如...我需要编写一个 shell 脚本,它将比较驻留在两个不同服务器(服务器 A 和服务器 B)中的两个目录,并列出发现的差异。理想情况下,两台服务器中的目录的文件名、计数、大小应该相同。所以脚本应该找出差异(如果有的话)。有人可以帮我吗?提前致谢并致以最诚挚的问候,Prasenjit
我希望能够打印 bash 中的行数:行号(从顶部开始计算)-> 文件结尾
似乎 tail 只会从底部开始计算行数。
有谁知道如何做到这一点?谢谢。
我试过以下
# Where $1 is the file I'm reading in
# Get line number of error:
LINENUM=$( grep -n "$LAST_ERROR_DATE" $1 | egrep $LOG_THRESHOLD | grep $LAST_HOUR: | sed 's/:/ /g' | awk '{print $1}' | head -n 1 )
echo $LINENUM
# This returns 995
# Print everything from linenumber downwards
MESSAGE=$( awk 'NR >= $LINENUM' $1 )
Run Code Online (Sandbox Code Playgroud)
当我手动弹出 995 到 awk 而不是 $LINENUM 时,这有效,它似乎没有读取我的 bash 变量。有任何想法吗?
一年来,我一直在使用这个简单的命令(这就是我所能做的:)从我在 NAS 服务器中的用户数据备份整个树。
cp -r /STORAGE /BACKUP-STORAGE/YYYY-MM-DD
Run Code Online (Sandbox Code Playgroud)
不幸的是,经过一年的服务。我的用户开始用大量照片和剪贴画(jpg、gif、bmp)填充空间,这开始使我的备份过程变慢。空间也是一个大问题。现在,我不再有足够的空间来存放为期一周的每日备份集。
我想我想从备份所有内容更改为仅备份非图像数据。如何从备份中排除 jpg、gif 和 bmp?使用 DOS XCOPY 命令很容易,但我真的不知道如何在 bash 中做到这一点。
谢谢
为了修改我的路径(如 LD_LIBRARY_PATH 或 PYTHONPATH),我首先检查变量是否存在。如果是这样,我将旧值与新值连接起来(用分号分隔),否则我将变量设置为新值。
NEW_PATH='/path/to/new/path'
if [ $LD_LIBRARY_PATH ]
then
export LD_LIBRARY_PATH=$NEW_PATH:$LD_LIBRARY_PATH
else
export LD_LIBRARY_PATH=$NEW_PATH
fi
Run Code Online (Sandbox Code Playgroud)
它有效,但是当你在脚本中有很多这些源代码时它有点笨拙:是否有一个聪明的技巧可以使这个块成为一个很好的单衬?
谢谢 !
是否有可用于 Linux (CentsOS) 的基于文本的浏览器,当我通过 SSH 连接到我的服务器时可以使用它。我使用 CentOS 5.5 版。我的服务器没有图形界面。
如果它支持 JavaScript 就好了。
我想删除第二列是 05408736032 的所有行。
0009300|05408736032|89|01|001|0|0|0|1|NNNNNNYNNNNNNNNN|asdf| 0009367|05408736032|89|01|001|0|0|0|1|NNNNNNYNNNNNNNNN|adff|
有没有办法向远程终端发送消息,类似于对本地系统上的其他用户使用 wall 命令?在这种情况下,我想指定一个 username@hostname 并在他们登录时在他们的终端中显示一条消息。
我想将与输出一起执行的命令重定向到一个文件。
例如:#ls >ls_out.txt
ls_out.txt 应该是这样的:
ls
文件 1 文件 2
谢谢!