我正在尝试打印输出第一行的第一个字段。情况就是这样。我只需要从此输出中仅打印SUSE
。
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
尝试cat /etc/*release | awk {'print $1}'
,但打印每行的第一个字符串
SUSE
VERSION
PATCHLEVEL
答案 0 :(得分:132)
如果要捕获所选行的输出,请指定NR
:
awk 'NR==1{print $1}' /etc/*release
另一种(丑陋的)实现同样的方法是:
awk '{print $1; exit}'
从输出中的特定行(例如第42行)获取第一个字符串的有效方法是:
awk 'NR==42{print $1; exit}'
答案 1 :(得分:17)
使用NR
内置变量指定行号。
awk 'NR==1{print $1}' /etc/*release
答案 2 :(得分:7)
试试这个:
head -1 /etc/*release | awk '{print $1}'
答案 3 :(得分:2)
sed -n 1p /etc/*release |cut -d " " -f1
如果制表符分隔:
sed -n 1p /etc/*release |cut -f1
答案 4 :(得分:1)
您可以使用head
代替cat
:
head -n1 /etc/*release | awk '{print $1}'
答案 5 :(得分:1)
set `cat /etc/*release`; echo $1
答案 6 :(得分:1)
df -h | head -4 | tail -1 | awk '{ print $2 }'
更改数字以根据您的喜好进行调整。
或者使用 while 循环,但这可能是一个糟糕的方法。
答案 7 :(得分:0)
尝试
sed 'NUMq;d' /etc/*release | awk {'print $1}'
其中NUM是行号
ex. sed '1q;d' /etc/*release | awk {'print $1}'
答案 8 :(得分:0)
You can kill the process which is running the container.
With this command you can list the processes related with the docker container:
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
Now you have the process ids to kill with kill or kill -9.