小编RNA*_*RNA的帖子

如何使用 grep 搜索以连字符 (-) 开头的模式?

sudo find / -name "*" | xargs grep -sn --color=auto "-j"
Run Code Online (Sandbox Code Playgroud)

上面的命令返回如下:

grep: invalid option -- 'j'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
...
Run Code Online (Sandbox Code Playgroud)

如何搜索字符串-j

grep

5
推荐指数
1
解决办法
1万
查看次数

如何在 bash 脚本中修剪用户输入?

好的,这是给定的用户输入:

$ myscript.sh file-name.txt
Run Code Online (Sandbox Code Playgroud)

我想修剪“file-name.txt”以检索bash脚本中的“文件”

#!/bin/bash
FILENAME=$1

# trim text after '-' from user input 'file-name.txt'
# save 'file' back to $1
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是以某种方式混合 sed 和正则表达式,但我不是那些专家:(

有任何想法吗?


我尝试了 muru 的建议以获得更复杂的输入。

给定输入:ABCD-0.1.5-6.1.txt

想要的输出:ABCD

#!/bin/bash
TRIMMED1="${1%-*}"
TRIMMED2="${1%%-*}"
TRIMMED3="${TRIMMED1%-*}"
TRIMMED4="${TRIMMED1%%-*}"
TRIMMED5="${1%-[0-9]*}"
TRIMMED6="${1%%-[0-9]*}"
echo "user input : $1"
echo "TRIMMED1 : $TRIMMED1"
echo "TRIMMED2 : $TRIMMED2"
echo "TRIMMED3 : $TRIMMED3"
echo "TRIMMED4 : $TRIMMED4"
echo "TRIMMED5 : $TRIMMED5"
echo "TRIMMED6 : $TRIMMED6"
Run Code Online (Sandbox Code Playgroud)

结果:

user input : A-B-C-D-0.1.5-6.1.txt
TRIMMED1 : A-B-C-D-0.1.5
TRIMMED2 : A
TRIMMED3 : …
Run Code Online (Sandbox Code Playgroud)

bash scripts

3
推荐指数
2
解决办法
2540
查看次数

将“先前运行的命令”复制到另一个终端的最佳方法是什么?

有两个终端窗口 - 终端 A 和终端 B。

我输入了一个很长很长的命令来在 A 上做一些事情。

然后我想在 B 上执行相同的命令。

但我不想再次输入它,也不想拖动复制粘贴,因为它很长。

最好(最快)的方法是什么?

command-line

0
推荐指数
1
解决办法
187
查看次数

标签 统计

bash ×1

command-line ×1

grep ×1

scripts ×1