cut 或 awk 命令打印第一行的第一个字段
•浏览 1
cut or awk command to print first field of first row
我正在尝试打印输出第一行的第一个字段。情况就是这样。我只需要从此输出中打印 SUSE 。
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
尝试使用 cat /etc/*release | awk {'print $1}' 但打印每一行的第一个字符串
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
如果要从选定行捕获输出,请指定 NR:
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
实现相同目的的另一种(丑陋)方法是:
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
在输出中从特定行(例如第 42 行)获取第一个字符串的有效方法是:
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
使用 NR 内置变量指定行号。
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
试试这个:
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
你可以用 head 代替 cat:
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
更改数字以根据自己的喜好进行调整。
或者使用while循环,但这可能是一种不好的方法。
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
如果制表符分隔:
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
awk, sed, pipe, 太重了
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
试试
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
其中 NUM 是行号
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
你可以杀死正在运行容器的进程。
使用这个命令可以列出与docker容器相关的进程:
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
SUSE
VERSION
PATCHLEVEL
awk 'NR==1{print $1}' /etc/*release
awk '{print $1; exit}'
awk 'NR==42{print $1; exit}'
awk 'NR==1{print $1}' /etc/*release
head -1 /etc/*release | awk '{print $1}'
head -n1 /etc/*release | awk '{print $1}'
df -h | head -4 | tail -1 | awk '{ print $2 }'
sed -n 1p /etc/*release |cut -d"" -f1
sed -n 1p /etc/*release |cut -f1
set `cat /etc/*release`; echo $1
sed 'NUMq;d' /etc/*release | awk {'print $1}'
ex. sed '1q;d' /etc/*release | awk {'print $1}'
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
现在你有了用 kill 或 kill -9 杀死的进程 ID。