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
    • 最新
    • 标签
主页 / user-516564

Bianca's questions

Martin Hope
Bianca
Asked: 2022-04-12 14:11:02 +0800 CST

复制即将到来的行的最后一列

  • -3

我有一个看起来像这样的文件:

文件:

900 1 37
900 2 41
900 3 278
918 1 9999
918 2 9999
918 3 9999

我想获得一个看起来像这样的新文件:

918 1 37
918 2 41
918 3 278

我想从上一组数字(900)中取出最后一列,并将其用于下一组数字(918)的最后一列。

我要替换的值始终是 9999。基本上我想用最后一个“有效”值替换所有 9999 的值(例如,当我有不同于 9999 的值时)。

bash text-processing
  • 2 个回答
  • 119 Views
Martin Hope
Bianca
Asked: 2022-04-09 01:28:31 +0800 CST

灵活的模式匹配

  • 0

我有一个看起来像这样的文件:

文件1:

0/28
7200/11
14400/11
21584/28
21600/11
28800/28
36000/11
36000/28
43200/11
43200/28
50400/11
57600/11
79200/28

在左侧(在 / 之前)我有以秒为单位的时间,而在右侧我有一个相应秒的参数值。

现在我有另一个看起来像这样的文件:

文件2:

0 14
0 15
0 20
0 28
7200 11
7200 14
7200 15

现在,我想从第二个文件中删除 FILE1 中的公共值。例如,我应该从 FILE2 中删除:

0 28
7200 11

并保持其余行不变。

我正在考虑在 bash 脚本中为 FILE1 中的每一行使用 for 循环,然后在 FILE2 中搜索它,但我无法识别该模式。如果我尝试从 awk 使用 substr 它将不起作用,因为时间没有相同的数字(0 有 1 个数字,7200 有 4 个数字)。

要阅读 FILE1 我正在做这样的事情:

IFS=$'\n' read -d '' -r -a X < ./FILE1.csv

为了编写 for 循环,我正在做这样的事情:

for x in "${X[@]}"
do
    gawk -i inplace -v var=${x} '{...}' FILE2.csv
done

我也在考虑将 FILE1 转换为这样的东西:

0 28
7200 11
14400 11
21584 28
21600 11
28800 28
36000 11
36000 28
43200 11
43200 28
50400 11
57600 11
79200 28

基本上有 2 列,但使用我上面使用的 for 和 var,如果我有超过 1 列,则将不起作用。我认为第二种方法更好,但我不知道如何让它单独处理每一列。

编辑:

如果 FILE1 是,我将如何做到这一点:

0 28
7200 11
14400 11
21584 28
21600 11
28800 28
36000 11
36000 28
43200 11
43200 28
50400 11
57600 11
79200 28

文件 2 是:

0 14 2 19
0 15 157 67
0 20 28 57
0 28 25 67
7200 11 88 14
7200 14 34 247
7200 15 364 14
bash text-processing
  • 4 个回答
  • 196 Views
Martin Hope
Bianca
Asked: 2022-04-08 00:21:18 +0800 CST

在数字前面添加零

  • 2

我有一个看起来像这样的文件,是用 Python 计算的:

1.00000100e+07  
1.00000000e+04  
1.11000111e+08  
1.11000000e+05

现在,我想获得这样的东西:

010000010  
000010000  
111000111  
000111000  

这个想法是我想添加零以获得 9 位的固定格式。我编写的 Python 代码给了我二进制数,但为了进一步解码,我需要这些二进制数有 9 位。我试图从 Python 以所需的格式获取它们,但我无法做到这一点。

我希望我的解释清楚。

更新:
Python代码:

#!/usr/bin/env python3  

import numpy as np  
from numpy import genfromtxt  
import os  

day = os.environ.get('day')  
Array = genfromtxt("SUC_diffzeros_"+str(day)+".csv")  
final = np.zeros(len(Array))
    
def decimaltobinary(x):

    for i in range(len(x)):
        
        print(x[i])
        final[i] = "{0:09b}".format(x[i])
        print(final)
    var = np.column_stack([Array, final])
    np.savetxt("SUC_diffzeros_"+str(day)+".csv", var, fmt='%.8e')

if __name__ == '__main__':
    val = Array.astype(int)
    decimaltobinary(val)
text-processing python3
  • 2 个回答
  • 246 Views
Martin Hope
Bianca
Asked: 2022-03-10 01:17:08 +0800 CST

在某个字符之前插入空格字符

  • 2

我有一个看起来像这样的文件:

120E+00 360E+01 258E-09-784E+02  
-847E+00-360E+01 242E-08 420E+05  
14E+00 360E+01 254E+00 78E+02  
-120E+00-254E-01-223E-09-786E-02  

E+00,E+01,E-01 等采用科学计数法表示 ^0,^1,^-1 等。

我想获取以下格式的文件:

120E+00 360E+01 258E-09 -784E+02  
-847E+00 -360E+01 242E-08 420E+05  
14E+00 360E+01 254E+00 78E+02  
-120E+00 -254E-01 -223E-09 -786E-02  

我想在负数之前添加一个空格,而不修改科学计数法或负数本身。
如果负数是行中的第一个(第一列),我也不想添加空格,只是从第 2 列到行尾。
我也想用awk。

我希望我的解释清楚。
谢谢!

awk text-processing
  • 3 个回答
  • 250 Views
Martin Hope
Bianca
Asked: 2022-03-03 02:56:00 +0800 CST

从文件中选择相关数据(每列和每行)

  • 0

我有 file1 看起来像这样:

0 0
0 1
0 8
ST1 2 3
5 2
2 2
ST3 4 3
4 2
5 5
ST5 1 9
1 5
7 8

所需的输出文件:

ST1 6 5 2
ST3 12 4 5
ST5 9 1 7

如何解决这个问题?我想用awk。我不知道如何编写算法,以便我可以处理这些行以使其看起来像所需的输出。

这个想法是我想找到模式(ST)并从那个点开始处理。

输出文件方案:ST*,column2 乘以我们有“ST”的行的第 3 列,“ST”下方的行的第 1 列,但直到下一个“ST”出现。

我也不想在第一个 ST* 之前处理任何内容。

awk text-processing
  • 4 个回答
  • 102 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