假设我有一个这样的文件:
$ cat a
hello this is a sentence
and this is another one
Run Code Online (Sandbox Code Playgroud)
我想打印前两列,在它们之间有一些填充.由于这个填充可能会改变,我可以使用例如7:
$ awk '{printf "%7-s%s\n", $1, $2}' a
hello this
and this
Run Code Online (Sandbox Code Playgroud)
或者17:
$ awk '{printf "%17-s%s\n", $1, $2}' a
hello this
and this
Run Code Online (Sandbox Code Playgroud)
或者25,或......你明白了这一点:数字可能会有所不同.
然后弹出一个问题:是否可以为此分配变量N,而不是以%N-s格式对整数进行硬编码?
我尝试了这些事情没有成功:
$ awk '{n=7; printf "%{n}-s%s\n", $1, $2}' a
%{n}-shello
%{n}-sand
$ awk '{n=7; printf "%n-s%s\n", $1, $2}' a
%n-shello
%n-sand
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想知道是否可以这样做.如果不是,那么最好的解决方法是什么?
我是初学者AWK,所以请帮助我学习它.我有一个名称的文本文件,snd它的值是
1 0 141
1 2 223
1 3 250
1 4 280
Run Code Online (Sandbox Code Playgroud)
我想在第三列值为最小值时打印整行
我正在尝试使用awk命令将值拆分为三个部分.需要帮助打破3.
内容= 1. 11683 (<server01>: du.size[/,free] : 0.5 % 2. 21683 (<server02>: du.size[/,free] : 1.5 % 3. 31683 (<server03>: du.size[/,free] : 3.5 %
我希望上面的内容在编号系统中分成3行.
需要样品输出:
1. 11683 (<server01>: du.size[/,free] : 0.5 %
2. 21683 (<server02>: du.size[/,free] : 1.5 %
3. 31683 (<server03>: du.size[/,free] : 3.5 %
Run Code Online (Sandbox Code Playgroud)
我尝试过以下命令:
echo $content | awk -F"3. " '{ print $2 }'
Run Code Online (Sandbox Code Playgroud)
我明白了
31683 (<server03>: du.size[/,free] : 3.5 %
Run Code Online (Sandbox Code Playgroud)
与其他人类似,但仍未能以正确的编号格式获得样本输出,如上所示.
谁可以帮我这个事 ?