问题标签 [shell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
9728 浏览

bash - 计算文件中令牌出现的次数

我有一个服务器访问日志,带有每个 http 请求的时间戳,我想获得每秒请求数的计数。使用sed, 和cut -c,到目前为止,我已经设法将文件缩减为时间戳,例如:

2008 年
9 月 22 日 20:00:21 +0000 2008 年 9 月22 日 20:00:22 +0000
2008 年 9 月 22 日 20:00:22 +0000 2008 年
9 月 22 日 20:00:22 +0000
22- 2008 年 9 月 20:00:24 +0000
2008 年 9 月 22 日 20:00:24 +0000

我想得到的是每个唯一时间戳在文件中出现的次数。例如,对于上面的示例,我希望得到如下所示的输出:

2008 年 9 月 22 日 20:00:21 +0000:1
2008 年 9 月 22 日 20:00:22 +0000:3 2008 年
9 月 22 日 20:00:24 +0000:2

我曾经sort -u将时间戳列表过滤为唯一令牌列表,希望我可以使用 grep 之类的

但这只会产生全部匹配行中的一行。

我知道这可以在一行中完成,将几个实用程序串在一起......但我想不出哪个。有人知道吗?

0 投票
8 回答
19534 浏览

linux - 如何在循环中运行命令,直到在标准输出中看到一些字符串?

我敢肯定,perl、ruby、bash 有一些微不足道的单行代码,可以让我在循环中运行命令,直到我在 stdout 中观察到一些字符串,然后停止。理想情况下,我也想捕获标准输出,但如果它要控制台,那可能就足够了。

目前有问题的特定环境是 RedHat Linux,但有时在 Mac 上也需要同样的东西。因此,通用和 *nixy 将是最好的。不关心 Windows - 大概一个 *nixy 的东西可以在 cygwin 下工作。

更新:请注意,“观察一些字符串”是指“stdout 包含一些字符串”而不是“stdout 是一些字符串”。

0 投票
7 回答
75372 浏览

macos - 如何将任务设置为每隔一段时间运行一次?

如何每隔 30 分钟运行一次脚本?我认为不同的操作系统有不同的方法。我正在使用 OS X。

0 投票
2 回答
2415 浏览

linux - linux编译多个java文件

这是我的目录结构。

/user/a /user/b /user/b

在文件夹 a,b,c 中有一个文件 person.java (它是同一个文件,只是一行修改。

现在,在我的外壳上,我在我的 /user/ 目录上,我尝试做

外壳返回以下错误,

person.java:14:重复类:人

有什么可以解决的吗?

0 投票
2 回答
9981 浏览

winapi - SHGetFolderPath() 32 位与 64 位

如果我在具有 CSIDL_PROGRAM_FILESx86 文件夹 id 而不是 CSIDL_PROGRAM_FILES id 的 32 位系统中使用SHGetFolderPath api 调用会发生什么?

理论上 CSIDL_PROGRAM_FILESx86 应该映射到C:\program files (x86)64 位系统,但它在不存在此路径的 32 位系统中映射到什么?

0 投票
8 回答
7992 浏览

unix - 在 shell/bash 中连接两个命令之间的输入 _and_output

我有两个(UNIX)程序 A 和 B,它们从 stdin/stdout 读取和写入。

我的第一个问题是如何将 A 的标准输出连接到 B 的标准输入,将 B 的标准输出连接Aie 的标准输入,例如 A | B 而是双向管道。我怀疑我可以通过使用 exec 重定向来解决这个问题,但我无法让它工作。这些程序是交互式的,因此临时文件不起作用。

第二个问题是我想复制每个方向并通过日志程序将副本传输到标准输出,以便我可以看到程序之间传递的(基于文本行的)流量。在这里,如果我能解决第一个问题,我可能会逃脱 tee >(...) 。

这两个问题似乎都应该有众所周知的解决方案,但我找不到任何东西。

我更喜欢 POSIX shell 解决方案,或者至少在 cygwin 上的 bash 中工作的东西。

感谢您的回答,我想出了以下解决方案。A/B 命令使用 nc 监听两个端口。日志记录程序使用 sed(使用 -u 进行无缓冲处理)。

这会监听到端口 47001 和 47002 的连接,并将所有流量回显到标准输出。

在外壳 2 中:

在外壳 3 中:

现在在 shell 2 中输入的行将被写入 shell 3,反之亦然,流量记录到 shell 1,如下所示:

以上已在 Cygwin 上测试过

更新:上面的脚本在几天后停止工作(!)。显然它可以死锁。答案中的一些建议可能更可靠。

0 投票
2 回答
1021 浏览

linux - 如何使用 shell 命令对包含排除项的文件和文件夹列表进行 tar

如何在排除单个目录(包含大量数据)的情况下对文件和文件夹列表(都在同一个目录中)进行 tar

0 投票
6 回答
10268 浏览

shell - KornShell (ksh) 环绕

好的,我相信这很简单,但它让我发疯。我最近去开发一个程序,我不得不及时退后一点并使用 Redhat 9。当我从运行 KornShell (ksh) 的标准 xterm 在命令行上键入时,我到达了line 屏幕向右滑动(切断我命令的左侧),而不是将文本换行到新行。这对我来说很困难,因为我不能直接从命令行轻松地复制和粘贴上一个命令。我必须查看历史记录并从那里粘贴命令。如果您想知道,我会执行很多命令行 awk 脚本,这些脚本会导致行变得很长。

有没有办法强制命令行换行而不是将可见性转移到我正在输入的命令的右侧?

我已经倾注了手册页选项,但没有运气。

我在跑:

  • XFree86 4.2.99.903(174)
  • KSH 5.2.14。

谢谢。

0 投票
4 回答
1491 浏览

perl - 根据当前文件的内容从 awk 搜索/读取另一个文件,这可能吗?

我正在使用 (GNU) 处理一个巨大的文件awk,(其他可用的工具是:Linux shell 工具,一些旧的(> 5.0)版本的 Perl,但无法安装模块)。

我的问题:如果某个field1,field2,field3包含X,Y,ZI必须在另一个目录中搜索包含field4和field5的文件,并将找到的文件中的一些数据插入到当前输出中。

例如:

实际文件行:

现在我需要搜索另一个文件(在另一个目录中),其中包含例如

$0从原始文件和找到的文件写入 STDOUT ,然后处理原始文件的下一行。f2f3

有可能做到awk吗?

0 投票
2 回答
2379 浏览

bash - bash getopts 函数对命令行选项有破坏性吗?

你能在同一个脚本中使用两次 bash“getopts”函数吗?

我有一组选项,它们的含义取决于特定选项的值。由于我不能保证 getopts 会首先评估该特定选项,因此我想只使用该特定选项运行一次 getopts,然后使用其他选项再次运行它。