我在的形式串wva/sia/e1,bct/e2,sv/de/e11。它总是 <Part1>/e<NUM>或<Part1>/<Part2>/e<NUM>。我想要的是通过保留部分的第一个字母并丢弃斜线和 e 来缩短字符串:
wva/sia/e1 > ws1
bct/e2 > b2
sv/de/e11 > sd11
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 sh 脚本中做到这一点?
编辑:字符串表示作业名称:
[...]
job_name=$1 # e.g. 'wva/sia/e1'
job_name=cut_name(job_name) # e.g. 'ws1'
[...]
Run Code Online (Sandbox Code Playgroud) 我想在>&之后 grep 数据 |。我使用了这个命令:
grep -o ' |.*$'| cut -c5-
Run Code Online (Sandbox Code Playgroud)
但它只是在以下之后提供数据|:
> Aminobenzoate
Asthma | Atrazine
Autoimmune thyroid disease | Bacterial
B cell receptor signaling pathway | Benzoate
Bile secretion | beta-Lactam
> Biosynthesis
Caffeine metabolism | Caprolactam
Calcium signaling pathway | Carbapenem
Run Code Online (Sandbox Code Playgroud)
Aminobenzoate
Atrazine
Bacterial
Benzoate
beta-Lactam
Biosynthesis
Caprolactam
Carbapenem
Run Code Online (Sandbox Code Playgroud) 如何在文本文件中找到一个词(例如“/dn”)并在下一行添加另一个词(例如“/period”)?
我想使用 MS DOS 执行它。
我的意思是这个“/dn”(/dn 之后是空格)是一个单词(不是文本的片段,而是整个单词——/dn 之后可以是同一行上的其他单词),然后我想找到它在它之后的下一个新行,而不是替换其他行和其他单词。我的意思是在现有行之间创建一条新行。
例如,如果我有这个输入文件:
/dn
/name
Run Code Online (Sandbox Code Playgroud)
我想要这个输出:
/dn
/period
/name
Run Code Online (Sandbox Code Playgroud)
和“/”符号应该带 dn,而不是没有它。
我搜索了ki与*按下面的例子,它应该已经回到了前三行。我不确定为什么它在没有ki匹配的情况下返回最后一行。
$ grep "ki*" trial_file.txt
kartik,27,Bangalore,Karnataka
pulkit,25,Bangalore,Karnataka
kit,28,Bangalore,Karnataka
kush,24,Pennsylvania,Philadelphia
Run Code Online (Sandbox Code Playgroud) 我需要在文件中查找特定匹配项的行号 - 电子邮件地址 - 然后从文件的开头删除它,直到匹配的行。
例如,假设行号是13807。所以我需要保持13808+行完好无损。
下面是一个例子:
$ cat input
some
lines
before
mail@server.com
and
some
more
afterwards
$ cat output
and
some
more
afterwards
Run Code Online (Sandbox Code Playgroud) contentJSON is :-
{"id":"0","name":"inc_timestamp","workspaceId":"37158928","infoJSON":"{a:{\"a\":\"bcd\",\"b\":{\"c\":\"d\"}}}","contentJSON":"{\n \"tasks\": [\n {\n \"name\": \"Input\",\n \"taskType\": \"executeCustomSQLQueryForIncrementalLoad\",\n \"id\": 10,\n \"x\": 95,\n \"y\": 44,\n \"inputConnectors\": [],\n \"outputConnectors\": [\n {\n \"nodeID\": 11,\n \"type\": \"Output\",\n \"name\": \"\"\n }\n ],\n \"argsMap\": {\n \"taskId\": 10,\n \"datasetId\": 49053696,\n \"deltaColumnName\": \"timestamp\",\n \"deltaColumnDataType\": \"timestamp\",\n \"deltaColumnValue\": \"null\",\n \"primaryKeysList\": [\n \"id\"\n ]\n },\n \"datasetId\": 49053696\n },\n {\n \"name\": \"Output\",\n \"taskType\": \"saveToES\",\n \"id\": 11,\n \"x\": 453,\n \"y\": 44,\n \"inputConnectors\": [\n {\n \"nodeID\": 10,\n \"type\": \"Input\",\n \"name\": \"\"\n }\n ],\n \"outputConnectors\": [],\n \"argsMap\": {\n \"bizvizcubeId\": 46759937,\n \"cfg\": {\n …Run Code Online (Sandbox Code Playgroud) 我有一个将数据写入日志文件的 Bash 脚本,然后我从中取出我想要使用该sed命令的东西。这给了我一个文件data.txt。我想知道的是如何删除该data.txt文件中的特定行。
例如:
123
456
789
Run Code Online (Sandbox Code Playgroud)
我想删除第二行,包含456这样我只有
123
789
Run Code Online (Sandbox Code Playgroud)
我试过,sed '2d' data.txt但它不起作用。
我使用此命令data.txt从log.log以下位置创建:
sed -nE '1s/.{1}(.{2}).*/\1/p;' log.log >> data.txt
Run Code Online (Sandbox Code Playgroud) 我有两个目录 A 和 B。每个目录都包含一个 zip。
如何将这两个zip文件的路径写入文本文件?
目录系统示例:
FILES/ONE/one.zip
FILES/TWO/two.zip
Run Code Online (Sandbox Code Playgroud)
我想从 FILES 目录运行命令
我想使用sed.
如果我想删除一个字符串,如何避免错误[?例如:
$ echo '[Om/mystring' | grep -oP '(?<=[Om\\)\w+'
grep: missing terminating ] for character class
Run Code Online (Sandbox Code Playgroud) grep当一行包含与表达式匹配的字符串时,Command将打印一行,这对于搜索指定的内容并不方便。
例如,我有带格式的词汇文件
**word**
1. Definition:
2. Usage
3. Others
Run Code Online (Sandbox Code Playgroud)
我想检索所有单词以在文件中制作单词表
grep '\*\*[^*]*\*\*'
Run Code Online (Sandbox Code Playgroud)
返回大部分内容。
如何使用grep仅捕获word?