AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[columns](unix)

Martin Hope
user185953
Asked: 2022-06-29 08:04:31 +0800 CST

格式化为实时数据的列(管道)

  • 1

有没有办法对column通过管道传输的数据进行过滤?

我正在寻找一种方法来做类似的事情column -t,但无需等待输入结束,因此它适用于通过管道传输的实时数据。我知道我可以通过 强制固定宽度的列awk,但是每次格式更改时都需要进行太多设置。

PS:我认为模仿column -x不完整的数据是不可能的。我也认为column -t不可能在不完整的数据上完美复制。如果解决方案首先输出较窄的列,然后随着更多行的到达而扩展它们,则可以。

编辑:说明这不是缓冲问题的示例:

yes something | cat -n | tr -s '\t' ' ' | column -t
shell columns
  • 1 个回答
  • 44 Views
Martin Hope
loki
Asked: 2022-06-24 00:51:09 +0800 CST

按第一列作为键逐列组合文件(使用 grep 或 awk 等)

  • 0

这是我的两个文件

1.txt

1
2
3
4
5

2.txt

2       a
5       3

比我得到文件awk -F '\t' 'NR==FNR{F1[$0];next}$1 in F1{print}' 1.txt 2.txt

2       a
5       3

但我想得到这样的文件

1
2    a
3
4
5    3

或者

1     0
2     a
3     0
4     0
5     3
awk columns
  • 2 个回答
  • 77 Views
Martin Hope
Rama Krishna Majety
Asked: 2022-05-09 07:00:00 +0800 CST

AWK 一个班轮将三个字段合并到一个文件中

  • 1

我有一个包含两种类型字段分隔符的记录(行)的文件,|如下!所示:

Name|Age|Physics|Chemistry|Maths|English|Batch!Year!AdmisnNo!Grade!Score
Student1|81|65|70|80|88|EWS!2021!1001!A!75
Student2|72|63|60|50|75|EWS!2021!1002!A!85
Student3|72|63|60|50|75|EWS!2021!1002!A!85

如何合并Batch,Year和AdmisnNo字段如下?

请注意,为简洁起见,我展示了一个有用字段的小列表,因为我的真实文件有许多这样的相关字段。我要删除两个或三个!标记的这个字段不是最后一个,可以是大约 49 个字段总数中的任何字段(6 或 7)。

Name|Age|Physics|Chemistry|Maths|English|BatchYearAdmisnNo!Grade!Score
    Student1|81|65|70|80|88|EWS20211001!A!75
    Student2|72|63|60|50|75|EWS20211002!A!85
    Student3|72|63|60|50|75|EWS20211002!A!85

我要求awk,但是欢迎任何合理的标准命令。

awk columns
  • 6 个回答
  • 129 Views
Martin Hope
lm19246
Asked: 2022-03-07 22:07:01 +0800 CST

超大文本文件操作(添加列;更改列内容)

  • -1

我有一组非常大(80GB)的文件(基因组变体剂量),目前是“.txt.gz”,并具有以下布局(列/变量):

Chr RSID POS REF ALT Ind1 Ind2...Ind(n) 其中 1:n 是个体

我想编辑这个文件,这样:

  1. Chr 列/变量设置为所有行的特定染色体编号(例如,3)

  2. 在文件的特定位置插入了一个新列(我希望在 ALT 和 Ind1 之间插入新列/变量......这样新列将成为编辑文件中的第 6 列)。我还希望将此列的值设置为常数(例如,0)。

最后,我想以与读入相同的格式输出编辑后的文件(因此,输出应为“.txt.gz”

感谢您的帮助,并很乐意提供更多详细信息。

awk columns
  • 2 个回答
  • 126 Views
Martin Hope
Porcupine
Asked: 2022-01-06 08:51:40 +0800 CST

来自`util-linux`而不是来自`bsdmainutils`的`column`

  • 0

column可在包util-linux和bsdmainutils. 这两个软件包都安装在 Linux Mint 20.2 中

$ type column
column is /usr/bin/column
column is /bin/column

这两个列都指向 bsd 列工具。我如何访问该工具util-linux?

linux-mint columns
  • 2 个回答
  • 311 Views
Martin Hope
user10934304
Asked: 2020-01-09 02:36:34 +0800 CST

跨多个数据框求和列值

  • 1

假设我有 3 个数据框(独立的 .txt 文件):

        Acamar   Begalb     Caspri 
Acamar  0.1      0.0        6.3
Begalb  0.33     8.3        0.0
Caspri  1.4      0.617      2.4

        Acamar   Begalb    Caspri 
Acamar  0.5      3.2        0.1
Begalb  0.0      2.1        0.5
Caspri  4.2      0.0        1.5

        Acamar   Begalb    Caspri 
Acamar  0.5      3.2        0.1
Begalb  0.0      2.1        0.5
Caspri  4.2      0.0        1.5

我想对 3 个数据框中的列值求和,以便得到:

           Acamar   Begalb    Caspri 
    Acamar  1.1      6.4        6.5
    Begalb  0.33     12.5       1
    Caspri  9.8      0.617      5.4

像这样使用datamash:

cat *.txt | datamash --headers groupby 1 sum 2-4 

用 0 填充我的所有列并返回错误消息:

invalid numeric value in field 2: 'Acamar'

有谁知道如何帮助,使用datamash或其他东西?

非常感谢 :)

linux columns
  • 1 个回答
  • 199 Views
Martin Hope
LFMekz
Asked: 2019-07-07 04:21:14 +0800 CST

让 xxd 显示最上面一列的字节偏移量?

  • 2

所以我使用具有惊人的十六进制模式的emacs来查看文件中的字节偏移量,类似于十六进制值:

87654321  0011 2233 4455 6677 8899 aabb ccdd eeff  0123456789abcdeff             
00000000: 5765 6c63 6f6d 6520 746f 2047 4e55 2045  Welcome to GNU E

作为这种能力的粉丝。想知道这是否是我可以在 xxd 或 hexdump 中退出的功能?或者,如果有人有一个 awk 脚本来执行此操作并使其正确排列

columns hex
  • 1 个回答
  • 1944 Views
Martin Hope
Joana Carvalho
Asked: 2019-05-31 01:56:19 +0800 CST

基于非连续行平均一列

  • 0

我有几个这样的文件:

38
CVBR1 14.8804 -24.6979
CVBV1 16.1739 -22.9142
CVBV2 16.1376 -22.8745
CVBV4 16.0818 -22.8148
CVBV5 16.0028 -22.7777
CVBV6 16.1640 -22.7128
CVFG1 14.8981 -24.4886
CVFG2 15.0135 -24.4262
CVFG3 15.0450 -24.3434
CVFG4 14.8876 -24.2931
CVFG5 14.8898 -24.4072
CVMA1 15.2288 -23.2110
CVMA2 15.1347 -23.1612
CVMA3 15.1441 -23.1216
CVMA4 15.2699 -23.1733
CVSA1 17.1328 -25.0427
CVSA2 17.2023 -25.0928
CVSA3 17.1647 -25.0973
CVSA4 17.1062 -25.2434
CVSA5 17.0208 -25.1670
CVSA6 16.9569 -25.3100
CVSL1 16.6008 -22.8977
CVSL2 16.7091 -22.9402
CVSL3 16.7633 -22.8944
CVSL4 16.7578 -22.9826
CVSN1 16.6497 -24.3205
CVSN2 16.6219 -24.3465
CVSN3 16.6199 -24.2929
CVSN4 16.6135 -24.1318
CVST1 15.0150 -23.5251
CVST2 15.0525 -23.6041
CVST3 15.0983 -23.6659
CVST4 15.2299 -23.7426
CVST5 15.1186 -23.5200
CVSV1 16.8864 -24.9228
CVSV2 16.8748 -25.0198
CVSV3 16.8518 -25.0361
CVSV4 16.8464 -24.8741
CVMA3 CVSA6
16.9569 -25.3100
3.6722
.03092
CVMA3 CVSV3
16.8518 -25.0361
3.4578
.04678
CVSA6 CVST3
15.0983 -23.6659
2.7588
.02963

每个文件中的前 39 行完全相同。我想计算 3.6722+3.4578+2.7588+(尽可能多)/尽可能多的平均值

我做了以下事情:

for file in in_tomo_*
do
npaths=$((($nlinhas - 39) / 4))
echo $npaths
average=$(echo | awk 'BEGIN{SUM=0}{{if NR>=39 && (NR+3)%4==0} SUM+=$1}END{print SUM/'$npaths'}' $file)
echo $average
done
awk columns
  • 1 个回答
  • 60 Views
Martin Hope
Ritajit Kundu
Asked: 2019-05-03 14:33:41 +0800 CST

使用 awk 对齐列

  • 10

我正在尝试对齐这些列

super+t sticky toggle
super+Shift+space floating toggle
super+Shift+r restart
super+Shift+d mode $mode_launcher
super+Shift+c reload
super+r mode resize
super+Return i3-sensible-terminal
super+q kill
super+n Nautilus scratchpad show
super+m neomutt scratchpad show
super+minus scratchpad show
super+f fullscreen toggle
super+c bar mode toggle
super+button2 kill
super+alt+x systemctl -i suspend
super+alt+v cmus
super+alt+m neomutt
super+alt+c ~/bin/editinvim
super+alt+b ranger

我曾尝试使用awk但没有运气。首选格式就像

super+Shift+d     mode $mode_launcher     
super+alt+c       ~/bin/editinvim
super+alt+b       ranger
awk columns
  • 2 个回答
  • 7092 Views
Martin Hope
rubo77
Asked: 2019-01-01 05:48:18 +0800 CST

获取输出的某一列,其内容右对齐,并且某些列并不总是填充

  • 0

这是我经常遇到的问题,这次是 的输出lsof,但我正在寻找此类问题的通用解决方案:选择列。

在这里,我尝试获取输出的 TYPE 列lsof

COMMAND     PID   TID                USER   FD      TYPE             DEVICE     SIZE/OFF       NODE NAME
lsof      16113                      root  cwd       DIR               0,58        40960    7602184 /home/rubo77
lsof      16113                      root  rtd       DIR              259,7         4096          2 /
lsof      16113                      root    4r     FIFO               0,12          0t0     294763 pipe
lsof      16113                      root    7w     FIFO               0,12          0t0     294764 pipe
lsof      16648                      root  rtd       DIR              259,7         4096          2 /
riot-web   4399  4424               ruben   25u     unix 0xffff9543f9ad7000          0t0      53133 type=STREAM
thunderbi  4650  5835               ruben  DEL       REG              259,7                 2752546 /usr/share/icons/hicolor/icon-theme.cache
...

我试过了

lsof|perl -lane 'print $F[5]'

但这有时是第 6 列,有时是第 5 列

我明白了

lsof|cut -c50-54|sort|uniq -c

375  CHR 
610  DIR 
211 FIFO 
...

但这似乎有点不干净,因为您必须修复角色位置。

主要问题是,在某些行中,第 5 列是空的

有没有真正只选择输出的第 6 列的解决方案?

最好的解决方案是一个工具,您只需说显示第 X 行,该工具将分析第一行并通过分析以下行自动检测每列是否右对齐、居中或左对齐,然后只需选择该内容柱子。

columns cut
  • 3 个回答
  • 464 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve