如何将 echo/print 命令与另一个命令(如 cat 或 sed)结合使用
How to combine a echo/print command with another command such as cat or sed
我遇到过这样的情况,例如在使用 cat 命令或 sed 命令时,我需要打印同一行的文本部分。
我有一个文件,其中显示了 5 行
Tom
Seniorsupport
5
U
我的目标是在每一行的前面打印特定的文本,让另一列更具体
我想要的输出:
Grantee/Username: Tom
Role name: Seniorsupport
Priority: 5
Usertype: U
有很多方法可以做到这一点,但我想要一种快速简便的方法
我决定采用的一种方法是使用 awk 命令。
cat filename | awk '{print "Grantee/Username: " }' | sed -n '1p'
以上命令将使用 awk 函数 cat 文件并打印文本,使用 sed 命令仅打印文件中的第 1 行
您可以将标题(第 1 列)保留在 file1 中,将实际值保留在 file2 中,然后您可以使用 paste
命令将它们并排粘贴,如下所示:
$ cat file1
Grantee/Username
Role name
Priority
Usertype
$ cat file2
Tom
Seniorsupport
5
U
$ paste <(awk '{printf "%-19s\n", [=10=] ":"}' file1) file2
Grantee/Username: Tom
Role name: Seniorsupport
Priority: 5
Usertype: U
将headers写入另一个文件("keyfile")。
使用 awk 组合数据和键。使用 What is "NR==FNR" in awk? 中解释的技巧,您可以编写
awk 'NR==FNR {a[FNR]=[=10=]; next} {printf("%-20s%s\n", a[FNR] ":", [=10=]) }' keyfile datafile
我遇到过这样的情况,例如在使用 cat 命令或 sed 命令时,我需要打印同一行的文本部分。
我有一个文件,其中显示了 5 行
Tom
Seniorsupport
5
U
我的目标是在每一行的前面打印特定的文本,让另一列更具体
我想要的输出:
Grantee/Username: Tom
Role name: Seniorsupport
Priority: 5
Usertype: U
有很多方法可以做到这一点,但我想要一种快速简便的方法
我决定采用的一种方法是使用 awk 命令。
cat filename | awk '{print "Grantee/Username: " }' | sed -n '1p'
以上命令将使用 awk 函数 cat 文件并打印文本,使用 sed 命令仅打印文件中的第 1 行
您可以将标题(第 1 列)保留在 file1 中,将实际值保留在 file2 中,然后您可以使用 paste
命令将它们并排粘贴,如下所示:
$ cat file1
Grantee/Username
Role name
Priority
Usertype
$ cat file2
Tom
Seniorsupport
5
U
$ paste <(awk '{printf "%-19s\n", [=10=] ":"}' file1) file2
Grantee/Username: Tom
Role name: Seniorsupport
Priority: 5
Usertype: U
将headers写入另一个文件("keyfile")。 使用 awk 组合数据和键。使用 What is "NR==FNR" in awk? 中解释的技巧,您可以编写
awk 'NR==FNR {a[FNR]=[=10=]; next} {printf("%-20s%s\n", a[FNR] ":", [=10=]) }' keyfile datafile