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 / 问题

问题[merge](unix)

Martin Hope
vishvAs vAsuki
Asked: 2022-09-28 09:42:48 +0800 CST

很好地区分两个目录

  • 0

我需要区分(并合并)两个目录(实际上是相同的内容,在一组文件中插入了一些额外的行)。唉,我尝试过的所有差异程序(kompare、diffmerge、kdiff3、diffuse、xxdiff、)都不能很好地显示差异(来自 intellij idea 的屏幕截图);或仅限于差异文件(在这种情况下,我没有检查它们是否做得更好)。这两个目录是:A和B。

你能推荐一个好的 diff 程序来解决这个问题(强烈推荐 GUI,必须免费使用)?

差异失败截图

diff merge
  • 1 个回答
  • 42 Views
Martin Hope
lotus
Asked: 2022-09-16 11:10:38 +0800 CST

如何在csv文件上水平合并文本文件?

  • 0

我有几个包含不同值的文本文件。我想将所有这些文件水平合并在一起并输出一个 csv 文件。

文件.1.txt

1
2
3
4
5
.
.
.

文件_2.txt

1 
2
6
7
8
.
.
.

Desired_output.csv

11 . . .
22
36
47
58
..
..
..

最好的,

linux merge
  • 1 个回答
  • 17 Views
Martin Hope
Francesco Peeters
Asked: 2021-10-09 10:58:25 +0800 CST

Linux:如何从 CLI 合并具有不同大小写的相同命名文件夹(首选 BASH)

  • 0

我的 Linux NAS 上有名称相同的杂项文件夹,但大小写除外,如下所示:

  • /数据/库
  • /数据/库/预设
  • /数据/库/预设
  • /数据/库/预设
  • /合并/自述文件
  • /合并/自述文件
  • /合并/自述文件
  • /合并/自述文件
  • 等等

这在 Linux 上是可以的,即使不是可取的,但是因为这是在为 Windows PC 提供服务的 NAS 上,所以客户端 PC 会感到困惑,并且实际上只显示其中一个文件夹的内容,尽管显示了所有变体......

有这么多,我想自动将这些文件夹合并在一起。

我们最终得到的大小写实际上是无关紧要的,尽管“每个单词的首字母大写”的格式会更受欢迎,但如果可能的话,最终目标是每个文件夹名称中只有一个。

(注意:我知道这些文件夹中包含的文件名也可能存在冲突,但经过讨论,我愿意冒可能存在具有不同内容的同名文件的风险,仅仅是因为目前很多的内容甚至都不容易访问!)

是否有任何现成的 CLI 工具(或 BASH 脚本)来执行此操作?

bash merge
  • 1 个回答
  • 190 Views
Martin Hope
user3901666
Asked: 2019-08-31 01:16:44 +0800 CST

在第一个变量之后将变量的值合并为一个新行

  • 0

我有以下两个变量: $var1 具有类似的值

ABC
XYZ
SDF

和 $var 2 具有类似的值

SDF
SGDGH
hfg

我想要像这样的输出

ABC
XYZ
SDF
SDF
SGDGH
hfg

我有以下脚本,我想将 file_import_2 和 file_import_3 的值合并为一个。

    file_import_2=""
    file_import_3=""
    for DataBase in $(< "$1"); do

    file_import_1=`grep -iw "CRQ_DI_PROD_$DataBase" "$Import_List_File" | grep -i prod`;
    if [[ "$file_import_1" = GDH_* ]]; then
    file_import_2=$file_import_1

    fi
    if [[ "$file_import_1" != GDH_* ]]; then
    file_import_3=$DataBase
    fi

var3=$(printf '%s\n%s\n' "$file_import_2" "$file_import_3")
echo $var3

    done

我传递给脚本的文件和 Import_List_File 各有 4 个值

FARP_DATA_111
TRIN_STAGING
DBH
PRS

使用 print f 解决方案,输出为:

CRQ_DI_PROD_FARP_DATA_111
CRQ_DI_PROD_TRIN_STAGING
CRQ_DI_PROD_TRIN_STAGING DBH
CRQ_DI_PROD_TRIN_STAGING PRS
merge
  • 1 个回答
  • 237 Views
Martin Hope
fuumind
Asked: 2019-08-28 02:42:05 +0800 CST

将字符串合并为列以在 bash 中创建表

  • 0

考虑以下字符串:

$ columnA="A1\nA2\nA3"
$ columnB="B1\nB2\nB3"
$ columnC="C1\nC2\nC3"

使用 Bash,我如何合并这些,以便获得另一个具有以下内容的字符串:

$ echo "$table"
A1;B1;C1\nA2;B2;C2\nA3;B3;C3
bash merge
  • 2 个回答
  • 549 Views
Martin Hope
peti27
Asked: 2019-07-31 07:10:40 +0800 CST

使用 AWK 根据另一个文件中的值更新一个文件

  • 0

我有两个文件 file1.csv(20 列 410k 行)和 data.csv(4 列 1800 行)。我想要做的是,如果 data.csv 第一列与 file1.csv 第二列匹配,用 data.csv 第三列中的值覆盖 file1.csv 中的第一列。如果没有匹配保留现有值...

此命令将列出匹配的行,但无法正确获取替换部分。

awk -F"," 'BEGIN{OFS=","} {if (NR==FNR) {a[$1]=$3; next} if ($2 in a) print}' data.csv file1.csv
 > file3.csv

谢谢!

awk merge
  • 1 个回答
  • 1085 Views
Martin Hope
tasket
Asked: 2018-11-22 22:02:49 +0800 CST

sort --unique -k 是否按原始顺序删除重复项?

  • 3

我正在对一组连接的索引文件进行唯一排序,其中第一列有时会在每个索引之间更改,第二列将是键值(实际上是十六进制地址)。每个 indexN 文件迭代记录自上一次以来更改的地址——如果地址 0xaa11 存在于 index3 中,则在合并+排序的输出中,它应该替换来自 index1 和 index2 的 0xaa11 地址引用。

问题是,如果我只是按特定顺序将每个源索引传输到管道,我能否使用 GNU 之类的工具可靠地进行这种类型的合并?sortsort -u

例如,管道索引从最新到最旧:

cat index3 index2 index1 | sort -u -k 2,2

当我对此进行测试时,它似乎保留了 index3 中包含也出现在 index2 和 index1 中的地址的行,同时删除了来自 index2 和 index1 的那些重复引用。

但情况会一直如此吗?手册页对此sort含糊不清:

-u --unique   output only the first of an equal run

我对 GNU 排序的算法知之甚少,无法预测具有匹配键的行是否总是按其源文件连接的相同顺序排序(例如,它们出现在源流中的顺序)。但我确实知道排序算法并不总是以线性方式工作。这就是为什么我正在寻找澄清文档似乎暗示的内容。

sort merge
  • 1 个回答
  • 410 Views
Martin Hope
Nicolas
Asked: 2018-09-08 04:11:15 +0800 CST

用于合并具有公共列的多个文件的 awk

  • 2

我有一个关于 unix 中的 awk 命令的问题,用于合并具有共同值的多个表

选项卡1

Geneid  Chr Start   End Strand  Length Sample_1
ENSG00000278267 1   17369   17436   -   68  0
ENSG00000243485 1;1;1   29554;30267;30976   30039;30667;31109   +;+;+   1021    0

选项卡 2

Geneid  Chr Start   End Strand  Length Sample_2
ENSG00000278267 1   17369   17436   -   68  0
ENSG00000243485 1;1;1   29554;30267;30976   30039;30667;31109   +;+;+   1021    0

选项卡 3

Geneid  Chr Start   End Strand  Length Sample_3
ENSG00000278267 1   17369   17436   -   68  0
ENSG00000243485 1;1;1   29554;30267;30976   30039;30667;31109   +;+;+   1021    0

如您所见,这些表中的 Geneid 相似,我想将这些文件合并为 1 与 GeneID 列和“Sample_n”列

awk 'NR==FNR {h[$1] = $7; next} {print $1,$7,h[$1]}' Sample_1.txt Sample_2.txt | head

如果我没有遗漏什么意思:NR==FNR,第一个文件是输出的模板 {h[$1] = $7; next} h 包含文件 1 的 GeneID 与第 7 列中的值相关联

这适用于 2 个文件,但不适用于 3 个或更多

Geneid Sample_1 Sample_2
ENSG00000278267 0 0 
ENSG00000243485 0 0 

我查看了这个网站,人们发布了所有代码,但我不太了解命令,所以有人知道如何合并这些文件并解释命令中的参数吗?

awk merge
  • 1 个回答
  • 2081 Views
Martin Hope
Tim Friske
Asked: 2018-05-27 03:37:56 +0800 CST

合并签名/注释标签时Git不创建合并提交

  • 2

我希望 Git 在我合并签名或带注释的标签时创建合并提交,但它会快进分支指针。我在随附的 openSUSE Tumbleweed 上使用 Git 2.17.0 版本。

根据它的手册页,git-merge(1)在合并签名/注释标签的情况下应该创建一个合并提交:

--no-ff即使合并解析为快进,也创建合并提交。这是合并未存储在 refs/tags/ 层次结构中的自然位置的带注释(可能还有签名)标签时的默认行为。

我发出的命令序列如下所示:

git init foobar
cd foobar
git commit --allow-empty -m 'Empty root commit'
git checkout -b feature
git commit --allow-empty -m 'Feature one commit ahead of master'
git tag -a -m 'Feature ready for non fast-forward merge' ready-to-merge-feature
git checkout master
git merge ready-to-merge-feature

不幸且出乎意料的是,注释标签的合并ready-to-merge-feature确实会导致快进合并而不是创建合并提交。我在使用带符号而不是带注释的标签时观察到了同样的意外行为。

我的假设是错误的吗?难道我做错了什么?什么是解决方案?

git merge
  • 1 个回答
  • 446 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