我正在编写的 awk 脚本中有几个命令:
print "Here are some players and their numbers, sorted by last name"
if(sum[x] > 500) {print x, $2}
Run Code Online (Sandbox Code Playgroud)
哪些输出:
Here are some players and their numbers, sorted by last name
Lebron James 23
Kevin Durant 35
Kobe Bryant 24
Blake Griffin 32
Dikembe Mutumbo 55
Run Code Online (Sandbox Code Playgroud)
如何使用awk 脚本中的sort
命令仅对玩家及其号码进行排序?
如何在 shell 脚本的每个 awk 命令中实现回车或换行符,以便每个命令的输出与下一个命令的输出分开?
也许我需要更多的规范。我有两个 awk 命令,如下所列:
awk {print $1, $2}
, awk 命令 1, 输出:
John Bender
Bohn Jender
Jen Bondher
Run Code Online (Sandbox Code Playgroud)
awk '{print $3, $4}'
,命令 2,输出:
AGE 21
AGE 420
AGE 2345678909876543234567890876543234567890876543
Run Code Online (Sandbox Code Playgroud)
当在 shell 脚本中组合并运行时./<testscript>.sh <textfile>
,命令行显然输出:
John Bender
Bohn Jender
Jen Bondher
AGE 21
AGE 420
AGE 2345678909876543234567890876543234567890876543
Run Code Online (Sandbox Code Playgroud)
因为我想要换行附加 PER awk 命令,所以我希望输出看起来像:
John Bender
Bohn Jender
Jen Bondher
AGE 21
AGE 420
AGE 2345678909876543234567890876543234567890876543
Run Code Online (Sandbox Code Playgroud)
以前尝试附加“\n”的结果是:
John Bender
Bohn Jender
Jen Bondher
AGE 21
AGE 420 …
Run Code Online (Sandbox Code Playgroud) 允许通过正则表达式元字符过滤器过滤进程的命令是什么?
例如,如果我想过滤掉以字母A
or开头的所有进程a
,我将如何[Aa]$
在整体命令中实现?
本质上,我得到了一个文本文件,应该通过 sed 命令来处理它。我总共有大约 7 个 sed 命令,并且需要将它们全部放在一个 shell 脚本中以在运行此脚本时生成一个输出。
要拧紧的文本文件: students.txt
学生.txt:
DogG DOGGGGGGGG
dog dog dog Jamesb
JamesBrady
derghnregnrig
JamesBeody
Run Code Online (Sandbox Code Playgroud)
所以第一个 sed 去掉了第一行和最后一行。第二个 sed 用 DOGGGG 替换 dog 第三个 sed 使用 JamesBrady 查找并打印所有行 第四个 sed 使用 derghnregnrig 查找并打印所有行
Sed 命令(BS 示例):
sed -e '1d' -e '$d' -e '/^$/d' students.txt
sed -n s/dog/DOGGGG/g students.txt
sed -n /JamesBrady/p students.txt
sed -n /derghnregnrig/p students.txt
Run Code Online (Sandbox Code Playgroud)
以上 sed 命令都放在一个 shell 脚本文件中,并且在运行时应该将其(累积?)效果输出到一个文本文件(students.txt)
到目前为止,我已尝试查找执行此操作的正确程序,但遇到的只是混乱。有人能以初学者的耐心清晰地解释一下如何将多个 sed 命令以及与此相关的任何命令(awk、grep 等)放入单个 shell 脚本文件中吗?
使用 Ubuntu 16.04,Vim。Bash 外壳