我正在尝试为这章作业学习AWK命令,他们作为命令给出的一个例子是:
awk -F: '{printf "%s\t %s\n", $1, $2}' datafile
虽然我理解了大部分这些术语,但我对"%s\t %s\n"
所指的内容感到失落。我似乎无法找到他们在这个命令中的目的是什么。任何反馈都会有所帮助,因为我是一名一年级的linux学生,据说请尽量不要过于技术性的回复
答案 0 :(得分:1)
第一个%s
是$1
的值。
第二个%s
是$2
的值。
\t
是一个标签。
\n
是换行符。
答案 1 :(得分:0)
awk -F:
将字段分隔符设置为:
'{printf "%s\t %s\n", $1, $2}'
打印字段nr1标签字段nr2输入
数据文件
更多细节
"%s
#get首次提交($ 1)
\t
#tab +空格
%s
#get第二次提交($ 2)
\n
#add换新线
"
, $1
#fist字段
, $2
#second field
另见:http://www.gnu.org/software/gawk/manual/html_node/Printf-Examples.html
答案 2 :(得分:0)
您检查了man pages吗?
-F
是分隔符 - 您说您处理的字段由:
分隔,如:
foo:bar:baz
1:2:3
printf
是一种打印格式指令,其中
%s
- 打印字符串\t
- 打印标签\n
打印新行$1
,$2
- 打印第一和第二个元素(如foo
中的bar
和foo:bar:bas
) printf
在这里使用三个参数:第一个是格式(%s…
部分,“模具”),接下来的两个参数($1
和$2
)是要以格式显示的变量(将它们塞入模具中)。第一个变量(此处为$1
)将替换第一个%s
,第二个变量($2
)将替换第二个%s
。