我正在寻找可以完成以下任务的现有 Linux 命令行工具:
考虑有一个输入流/dev/inputstream,它喷出无限的数据流,如下所示:
A
A
B
A
C
Z
A
.
.
.
Run Code Online (Sandbox Code Playgroud)
注意:(每一行是字母表中的一个字符)。
该工具以下列方式使用:
cat /dev/inputstream | tool
Run Code Online (Sandbox Code Playgroud)
该工具的输出应该类似于“top”命令中的输出。它应该是一个持续更新的前 N 个频繁出现项目的列表。
例如:
A -- 10 times
B -- 8 times
Z -- 7 times
C -- 2 times
D -- 1 time
Run Code Online (Sandbox Code Playgroud)
如果流不是无限的,我可以使用sortand完成此操作uniq。
我有几个接口:wlan0、eth0、lo,有时还有 tun0。当我连接到 Juniper VPN,创建一个 tun0 接口时,我在其他接口上的现有连接(可能除了 lo)被中断,它们使用 tun0 接口重新连接。
我只想在我选择的特定连接上使用 tun0,而不是所有连接,也不是默认情况下。如何确保默认接口是 eth0 或 wlan0?的输出在ip addr这里:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether d4:be:d9:65:c1:45 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether …Run Code Online (Sandbox Code Playgroud) 我有事要完成。我需要将所有出现的 & 替换<ex> </ex>为 #内部或之间。下面的实际例子:
a & b & c <ex> a & b & c </ex> a & b & c
Run Code Online (Sandbox Code Playgroud)
再次,我需要替换所有出现的 & 内部<ex>和之前</ex>
预期输出:
a & b & c <ex> a # b # c </ex> a & b & c
Run Code Online (Sandbox Code Playgroud)
请发布关于你们如何设法做到的解释。
请只为我提供sed解决方案,因为我将在 AS400 系统上运行它并且无法安装 Perl 或任何其他解释器。
我想将 Python 脚本的输出添加到我的zsh提示中,但我不知道该怎么做?
这是通过手册页中所谓的“提示扩展”完成的吗?
请有人让我走上正轨,即发布一些我在 Google 上找不到的有用链接。
这是我的 Unix shell 脚本代码
#! /bin/ksh
echo "Enter your first number:"
read first
echo "Enter your second number:"
read second
echo "Enter your third number:"
read third
SUM=`expr $first + $second + $third`
AVERAGE="$SUM/3"
echo "The average is $AVERAGE"
Run Code Online (Sandbox Code Playgroud)
基本上我想找到用户输入的 3 个值的平均值。输入所有值后得到的结果,例如所有值加起来为 12;是“平均值是12/3”。
如果我执行以下命令:
$ cat picture.jpg > copy1.jpg
Run Code Online (Sandbox Code Playgroud)
和
$ cat -v picture.jpg > copy2.jpg
Run Code Online (Sandbox Code Playgroud)
copy1.jpg是 的完美副本picture.jpg,但copy2.jpg比picture.jpg.
我认为这是因为copy2.jpg已经将猫认为的每个行尾都替换为 a ^M,并且每个^M都比行尾大。这样对吗?
如果那样做cat copy2.jpg,我发现没有^Min 的实例copy2.jpg。
这里发生了什么?如果 cat>的输出可能与其输入不同,那么可以依靠 cat 完美地使用 连接文件吗?
我有一个格式为的文本文件 -
b SN:2
d SN:5
f SN:10
g SN:11
h SN:15
i SA:3
j SN:1
k SN:4
Run Code Online (Sandbox Code Playgroud)
我想按第二列排序,实际上是第二列中的数值。我试过了 -
$ sort -n -k2,2 file
$ sort -k2.4,2.5n file
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何效果。
由于某些原因,选项顺序对于命令来说很重要。例如,不同的选项顺序可能会导致 中的操作不同ffmpeg,那么xargs从哪里添加选项呢stdin?
例如:
$ echo 'output.avi' | xargs ffmpeg -i input.avi -r 24
Run Code Online (Sandbox Code Playgroud)
完全等同于:
$ ffmpeg -i inpit.avi -r 24 output.avi
Run Code Online (Sandbox Code Playgroud)
但是如果我想通过管道input.avi从发送echo到xargs ffmpeg -i -r 24 output.avi,如何将 STDIN 中的字符串设置到指定位置?
我的朋友有一台使用 Windows 的电脑,我想知道那台电脑的名称。我现在只知道他的IP地址是10.0.0.2,我怎样才能从我的Linux机器上获取他的计算机名称?
假设我有这些 Bash 命令:
$ sha="$(git log --all --format=format:%H -n 1 -- .npp.json)"
$ git branch --contains "$sha" | tr -d " *"
Run Code Online (Sandbox Code Playgroud)
现在可能会记录如下内容:
master
dev
remotes/origin/foo
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 是否有一些 Bash 实用程序可以为我连接所有输出,以便我得到如下内容:
master:dev:remotes/origin/foo
Run Code Online (Sandbox Code Playgroud)
该实用程序可能如下所示:
$ git branch --contains "$sha" | tr -d " *" | concat ":"
Run Code Online (Sandbox Code Playgroud)
当然,最终值需要回显,所以它可能看起来像:
$ result="$(git branch --contains "$sha" | tr -d " *" | concat ":")"
$ echo "$result"
Run Code Online (Sandbox Code Playgroud)