gpt4 book ai didi

awk - 将变量分配给 cut -f 字段

转载 作者:行者123 更新时间:2023-12-04 23:14:45 25 4
gpt4 key购买 nike

使用cut,我想知道如何使用它:

awk -v id=3 -v RS= -F '::'  '($1==id) {print $3}' jenny  | a=1 ;cut -d$'\n' -f$a

我想在 i 被替换为例如 -f 1...3

的循环中使用它

输入

0::chkconfig --list autofs::
autofs 0:off 1:off 2:on 3:on 4:on 5:on 6:off

1::grep "^PROMPT=" /etc/sysconfig/init::
PROMPT=yes

2::rpm -q prelink::
prelink-0.4.0-2.el5

3::if [ -z "$(grep -l "hard core" /etc/security/limits.conf /etc/security/limits.d/*)" ]; then echo "empty"; else echo -e "$(grep -l "hard core" /etc/security/limits.conf /etc/security/limits.d/*)"; fi::
/etc/security/limits.conf
/etc/security/limits.d/test

4::sysctl fs.suid_dumpable::
fs.suid_dumpable = 0

5::stat /etc/motd::
File: `/etc/motd'
Size: 17 Blocks: 16 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 10125343 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-04-09 07:56:19.000000000 +0500
Modify: 2019-03-30 19:22:13.000000000 +0500
Change: 2019-03-30 19:22:13.000000000 +0500

预期输出

 /etc/security/limits.conf
/etc/security/limits.d/test

作为字段 1 和当前字段,它都在 $3 中。我尝试在 awk 中用换行符分隔;它似乎没有捕获。

最佳答案

要从给定的输入中获得所需的输出,请尝试:

$ awk '/^$/{f=0} f{print} /3::/{f=1}' file
/etc/security/limits.conf
/etc/security/limits.d/test

使用变量 i 只选择一个输出行:

$ awk -v i=1 '/3::/{n=NR+i} n==NR' file
/etc/security/limits.conf
$ awk -v i=2 '/3::/{n=NR+i} n==NR' file
/etc/security/limits.d/test

当然,awk 变量 i 可以设置为 shell 变量 i 的值:

$ i=2
$ awk -v i="$i" '/3::/{n=NR+i} n==NR' file
/etc/security/limits.d/test

节也可以从变量中选择:

$ i=2
$ k=3
$ awk -v i="$i" -v k="$k" -F:: '$1==k{n=NR+i} n==NR' file
/etc/security/limits.d/test

工作原理:

  • -v i="$i"-v k="$k"

    这些选项将 awk 变量 ik 设置为 shell 变量 $i$k 的值>,分别。

  • -F::

    这会将字段分隔符设置为 ::

  • $1==k {n=NR+i}

    如果当前行的第一个字段等于变量k,则将变量n设置为当前行号,NR,加上

  • n==NR

    如果当前行号NRn,则打印这一行。

关于awk - 将变量分配给 cut -f 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55605074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com