我有一个mycommand.sh不能运行两次的脚本。我想将输出拆分为两个不同的文件,一个文件包含与正则表达式匹配的行,另一个文件包含与正则表达式不匹配的行。我希望拥有的基本上是这样的:
./mycommand.sh | grep -E 'some|very*|cool[regex].here;)' --match file1.txt --not-match file2.txt
Run Code Online (Sandbox Code Playgroud)
我知道我可以将输出重定向到一个文件,然后使用和不使用 -v 选项重定向到两个不同的 grep 并将它们的输出重定向到两个不同的文件。但我只是想知道是否可以用一个 grep 来做到这一点。
那么,是否有可能在一行中实现我想要的?
我ssh编辑到我的服务器并运行wget -r -np zzz.aaa/bbb/ccc它开始工作。然后我的Internet连接(我家)中断了,我开始担心假设wget已经hupPED因为ssh连接丢失,因此终端已经死了。但是后来我ssh在我的服务器上发现它仍在运行,并将输出放入wget.log并下载内容。有人可以向我解释一下这里可能发生了什么吗?
这就是ps给我的:
PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
32283 0.6 29.4 179824 147088 ? S 14:00 1:53 wget -r -np zzz.aaa/bbb/ccc
Run Code Online (Sandbox Code Playgroud)
它?在列中(问号)是什么意思tty?
我发现自己<command> --help | grep <feature>每天都在做非常非常频繁的事情。我想知道是否有可能使类似的东西^^扩展到"--help | grep"然后我这样做:
ls ^^ size
Run Code Online (Sandbox Code Playgroud)
这将执行以下操作:
ls --help | grep size
Run Code Online (Sandbox Code Playgroud) 我有一个脚本s1,它输出一个用 ',' 分隔的数字列表,例如1,2,3,4. 现在我想将这些数字s2作为参数提供给脚本,以便 s2 将在每个数字上运行并在单独的行中输出其结果。例如,如果 s2 将数字乘以 2,这将是我正在寻找的结果:
2
4
6
8
Run Code Online (Sandbox Code Playgroud)
我现在正在做的是:
s1 | xargs -d "," | xargs -n1 s2
Run Code Online (Sandbox Code Playgroud)
但是我觉得我这样做很愚蠢!所以我的问题是:
正确的做法是什么?
我的解决方案的问题是它两次调用 xargs 并迭代输入两次,这在我看来当然是不合理的!答案xargs -d "," -n1似乎不错,但我不确定它是否只迭代一次。如果是这样,请在您的回答中验证这一点,我会接受。顺便说一句,我宁愿不使用 Perl,因为它仍在迭代两次,而且 Perl 在许多系统上可能不存在。
我对我想知道用户列表的服务器具有非 sudo ssh 访问权限,我认为该服务器正在使用 ldap,因为:
-bash-4.2$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Run Code Online (Sandbox Code Playgroud)
但:
-bash-4.2$ cd /etc/sssd/
-bash: cd: /etc/sssd/: No such file …Run Code Online (Sandbox Code Playgroud) 有时,当我想发现一个新软件来使用时,我必须在多个软件包之间进行比较。对我来说重要的因素之一是包装尺寸,因为我经常倾向于使用轻型包装来处理所有事情。
该pacman -Ss命令非常有用,但我真的很想知道包的大小,以便我可以进行比较。我尝试过pacman -Ssi,但没有成功。有什么办法可以在结果中添加一些信息吗pacman -Ss?
我也尝试过pacman -Ss -p --print-format "%n: %s",但这也没有用。
起初我想在我没有 root 访问权限的服务器上安装一个包。由于我没有 root 访问权限,因此我尝试自己构建它,但在配置阶段出现错误。
这是我运行的命令:
cd ~
git clone https://github.com/stella-emu/stella.git
cd stella/
./configure --prefix=$HOME/atari
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误:
Running Stella configure...
mkdir: cannot create directory `/tmp/cg-2059': Permission denied
config.guess: cannot create a temporary directory in /tmp
Looking for C++ compiler... none found!
Run Code Online (Sandbox Code Playgroud)
有什么办法可以解决这个问题吗?
以下是一些诊断信息
-bash-4.2$ ls -ld /tmp
drwxr-xr-x 7 root root 4096 Dec 9 20:39 /tmp
-bash-4.2$ find /tmp -mindepth 1 -maxdepth 1 -printf x | wc -c
12
-bash-4.2$ mkdir ~/tmp
-bash-4.2$ ls
amin bs94 Maildir public_html skel.tar.gz speedtest_cli.py speedtest.py …Run Code Online (Sandbox Code Playgroud) 我想做与 grep 做的相反的事情。我想排除具有特定模式的输出行。
我想要的是一个命令“ngrep”:
$ output
hi how are you?
hi hi haw are you?
hu hi how are you?
haw haw haw are you?
$ output | ngrep 'haw' :
hi how are you?
hu hi how are you?
Run Code Online (Sandbox Code Playgroud)