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-361114

Paolo Lorenzini's questions

Martin Hope
Paolo Lorenzini
Asked: 2025-04-18 00:09:08 +0800 CST

根据行号范围编辑特定列中的所有值

  • 6

我在 Linux 机器上有一个PDB 文件(蛋白质中原子的坐标):

ATOM      1   N  GLY A   1       0.535  51.766   5.682  1.00  0.00              
ATOM      2  CA  GLY A   1      -0.712  50.962   5.596  1.00  0.00              
ATOM      3   C  GLY A   1      -1.243  50.872   4.179  1.00  0.00              
ATOM      4   O  GLY A   1      -1.313  51.888   3.492  1.00  0.00              
ATOM      5   N  GLN A   2      -1.600  49.664   3.737  1.00  0.00              
ATOM      6  CA  GLN A   2      -2.221  49.468   2.423  1.00  0.00              
ATOM      7   C  GLN A   2      -3.542  48.719   2.507  1.00  0.00              
ATOM      8   O  GLN A   2      -3.722  47.844   3.356  1.00  0.00              
ATOM      9  CB  GLN A   2      -1.280  48.738   1.468  1.00  0.00              
ATOM     10  CG  GLN A   2      -0.976  47.294   1.830  1.00  0.00              
....     ..  ..   .. .   .       ....   ....     ....   ....  ....
TER   SPLIT LINE FOR INTERNAL USE ONLY
ATOM      1  O5'  G  A   1     -44.412  97.503  31.177  1.00  0.00              
ATOM      2  C5'  G  A   1     -45.447  96.803  31.882  1.00  0.00              
ATOM      3  C4'  G  A   1     -45.225  95.295  31.894  1.00  0.00              
ATOM      4  O4'  G  A   1     -46.441  94.578  31.654  1.00  0.00              
ATOM      5  C3'  G  A   1     -44.328  94.850  30.748  1.00  0.00              
ATOM      6  O3'  G  A   1     -42.943  94.877  31.129  1.00  0.00              
ATOM      7  C2'  G  A   1     -44.804  93.425  30.542  1.00  0.00              
ATOM      8  O2'  G  A   1     -44.163  92.592  31.466  1.00  0.00              
ATOM      9  C1'  G  A   1     -46.304  93.444  30.772  1.00  0.00              
ATOM     10  N9   G  A   1     -46.965  93.699  29.495  1.00  0.00
....     ..  ..   .  .   .     .......  ......   .....  ....   ...

TER 记录明确标记了特定氨基酸链的结束。我想用 awk 更改第 5 列的蛋白质链 ID,以便在 TER 之后为新的链分配正确的 ID。

预期输出:

ATOM      1   N  GLY A   1       0.535  51.766   5.682  1.00  0.00              
ATOM      2  CA  GLY A   1      -0.712  50.962   5.596  1.00  0.00              
ATOM      3   C  GLY A   1      -1.243  50.872   4.179  1.00  0.00              
ATOM      4   O  GLY A   1      -1.313  51.888   3.492  1.00  0.00              
ATOM      5   N  GLN A   2      -1.600  49.664   3.737  1.00  0.00              
ATOM      6  CA  GLN A   2      -2.221  49.468   2.423  1.00  0.00              
ATOM      7   C  GLN A   2      -3.542  48.719   2.507  1.00  0.00              
ATOM      8   O  GLN A   2      -3.722  47.844   3.356  1.00  0.00              
ATOM      9  CB  GLN A   2      -1.280  48.738   1.468  1.00  0.00              
ATOM     10  CG  GLN A   2      -0.976  47.294   1.830  1.00  0.00                 
TER   SPLIT LINE FOR INTERNAL USE ONLY
ATOM      1  O5'  G  B   1     -44.412  97.503  31.177  1.00  0.00              
ATOM      2  C5'  G  B   1     -45.447  96.803  31.882  1.00  0.00              
ATOM      3  C4'  G  B   1     -45.225  95.295  31.894  1.00  0.00              
ATOM      4  O4'  G  B   1     -46.441  94.578  31.654  1.00  0.00              
ATOM      5  C3'  G  B   1     -44.328  94.850  30.748  1.00  0.00              
ATOM      6  O3'  G  B   1     -42.943  94.877  31.129  1.00  0.00              
ATOM      7  C2'  G  B   1     -44.804  93.425  30.542  1.00  0.00              
ATOM      8  O2'  G  B   1     -44.163  92.592  31.466  1.00  0.00              
ATOM      9  C1'  G  B   1     -46.304  93.444  30.772  1.00  0.00              
ATOM     10  N9   G  B   1     -46.965  93.699  29.495  1.00  0.00  

所有内容都需要用相同的空格分隔,以下安排是错误的:

ATOM   3674  CD1 PHE A 460       2.350  79.471  35.466  1.00  0.00              
ATOM   3675  CD2 PHE A 460       1.037  81.443  35.196  1.00  0.00              
ATOM   3676  CE1 PHE A 460       2.425  79.321  34.080  1.00  0.00              
ATOM   3677  CE2 PHE A 460       1.108  81.298  33.805  1.00  0.00              
ATOM   3678  CZ  PHE A 460       1.805  80.232  33.250  1.00  0.00              
TER SPLIT LINE FOR B USE ONLY
ATOM 1 O5' G B 1 -44.412 97.503 31.177 1.00 0.00
ATOM 2 C5' G B 1 -45.447 96.803 31.882 1.00 0.00
ATOM 3 C4' G B 1 -45.225 95.295 31.894 1.00 0.00
ATOM 4 O4' G B 1 -46.441 94.578 31.654 1.00 0.00
ATOM 5 C3' G B 1 -44.328 94.850 30.748 1.00 0.00

此外,该文件以此结尾:

TER
ENDMDL

文件末尾有一个空白行,需要保留原样

text-processing
  • 3 个回答
  • 61 Views
Martin Hope
Paolo Lorenzini
Asked: 2022-03-08 00:59:58 +0800 CST

在中间打印部分文件名

  • 0

我有几个文件的名称为:

ID_Italy.txt
ID2_USA.txt
ID3_Germany.txt
.....

如果我想在 _ 之前打印,我可以:

for file in *.txt; do print "${file%_*}";done

输出:

ID
ID2
ID3

如果我想打印并删除扩展名:

for file in *.txt; do print "${file%.*}";done

输出:

ID_Italy
ID2_USA
ID3_Germany

但是,我只想取介于 _ 和 . 并具有以下输出:

Italy
USA
Germany

那怎么打印?

filenames
  • 5 个回答
  • 134 Views
Martin Hope
Paolo Lorenzini
Asked: 2020-01-12 00:01:59 +0800 CST

基于两列上的变量值的多个数据框的子集行

  • 0

我有多个数据框,如下所示:

df1

col1;col2;col3;col4
cat;1;2;blue
house;1;2;red
dog;5;6;yellow
mouse;7;8;white

df2

col1;col2;col3;col4
cat;3;4;grey
house;7;8;red
dog;5;6;yellow
mouse;3;4;black

df3

col1;col2;col3;col4
cat;5;6;grey
house;3;4;red
dog;5;6;yellow
mouse;9;10;grey

我想对 col2 和 col3 的值等于“cat”的 col2 和 col3 的值的所有行进行子集化 col2 和 col3 的值在每个数据帧中不断变化,因此不是恒定的。输出将是:

df1

col1;col2;col3;col4
cat;1;2;blue
house;1;2;red

df2

col1;col2;col3;col4
cat;3;4;grey
mouse;3;4;black

df3

col1;col2;col3;col4
cat;5;6;grey
dog;5;6;yellow

有什么建议吗?事实上,我可以一直使用 awk:

awk -F";" '{if($2=="1" && $3=="2")print $0}' df1 
awk -F";" '{if($2=="3" && $3=="4")print $0}' df2
awk -F";" '{if($2=="5" && $3=="6")print $0}' df3

但是我有数千个数据框,因此手动输入每行代码的值很麻烦

linux shell
  • 1 个回答
  • 172 Views
Martin Hope
Paolo Lorenzini
Asked: 2019-10-02 02:44:55 +0800 CST

grep 对模式和文件

  • 4

我有一个文件(search.patterns),其中包含要搜索到其他 txt 文件列表中的模式列表。

搜索模式

home
dog 
cat

文件 1.txt

home 3
tiger 4
lion 1

文件 2.txt

dolphin 6
jaguar 3
dog 1

文件 3.txt

donkey 3
cat 4
horse 1

所以我希望在file1中搜索模式文件的第一行,在file2中搜索第二行,在file3中搜索第三行

输出:

home 3
dog 1
cat 4

我写了一些这样的代码:

for f in *.txt;
    do 
    while IFS= read -r LINE; 
        do grep -f "$LINE" "$f" > "$f.out"
    done < search.patterns
done

但是,输出文件是空的

任何帮助,非常感谢,谢谢

linux
  • 3 个回答
  • 599 Views
Martin Hope
Paolo Lorenzini
Asked: 2019-07-24 08:00:37 +0800 CST

将每一行文件保存到不同的变量中,并在命令行输入和输出中一个一个地使用每个变量

  • 1

我是 shell 脚本的新手,如果之前有人问过这个问题,我深表歉意。

我有一个像这样的文件坐标.txt:

765442
866447
755343
097754

我想将文件每一行的每个值传递给一个变量,并将这些值一个一个地用作命令行中的输入,并将该数字保存在文件名的一部分中。我写了以下代码,但不确定这是否是正确的方法......

cat coordinates.txt | while read LINE; do
    var="$(echo $LINE)"
    /home/users/scripts/TreeView/TreeView.sh -o $NAME_ALL.chr1.new_estimate.trees.$var --bp_of_interest $var
done

所以在输出中 -o 每个值都附加到文件名,每个值也用作--bp_of_interest,一次一个

任何建议高度赞赏。谢谢

shell-script shell
  • 1 个回答
  • 289 Views
Martin Hope
Paolo Lorenzini
Asked: 2019-07-12 10:48:44 +0800 CST

用 awk 和 sed 替换字符的子串

  • 1

我有一个包含很长字符串的文件,我想用 Ns 替换它的子字符串。例子:

测试

ABCDABCDABCD

我想用 awk 命令和 sed 用所有字母 N 替换它的子字符串,索引从 5 到 8 的所有字符,所以字母 N 的总长度是 4。

输出

ABCDNNNNABCD

我试过这样的事情:

awk '{ v=substr($0,5,4); sed -i "s/$v/N/g";print substr($0,1,4)""v""substr($0,9,12)}' test

但是,此命令似乎给出了以下输出:

ABCDABCDABC

并且没有替换

我想在代码中包含从哪里开始替换的索引号(例如,这里是 5)和替换的长度号(这里是 4),所以我可以修改这些数字以防万一我想从另一个位置开始并进行不同长度的替换,因为实际上,我有一个包含数千个字母的字符串,我想替换数百个字符,因此在我的情况下替换模式不起作用

linux text-processing
  • 5 个回答
  • 12836 Views
Martin Hope
Paolo Lorenzini
Asked: 2019-07-12 05:18:43 +0800 CST

根据坐标范围替换字符

  • 0

嗨,我有一个包含数千行的文本文件,如下所示:

NNNNN
NNNNN
NNNNN
NNNNN

我想根据它们的位置坐标将特定范围内的所有字母替换为另一个字母,假设我想将范围位置 10 到位置 13 的所有 N 个字母替换为字母 P,输出将是:

NNNNN
NNNNP
PPPNN
NNNNN

关于我可以使用的命令有什么建议吗?

linux text-processing
  • 2 个回答
  • 205 Views
Martin Hope
Paolo Lorenzini
Asked: 2019-07-12 02:52:37 +0800 CST

用特定字符替换文本文件中的所有字符

  • 0

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

文件.txt

NNNP
PPZL
ZZNN

我想将所有字母替换为“N”,并且输出与输入相同的行数:(我的文件有 3 行,但实际上,我的文件有数千行)

NNNN
NNNN
NNNN

事实上,我可以用这个命令创建一个新文件:

printf %4s | tr " " "N" > file2.txt
yes "$(<file2.txt)" | head -n3

但是,有人知道是否有更直接的方法可以一次替换所有字母并保持相同的列和行矩阵?

linux text-processing
  • 2 个回答
  • 2725 Views
Martin Hope
Paolo Lorenzini
Asked: 2019-07-09 09:26:20 +0800 CST

附加多个 .txt 文件的名称并重命名连接目标文件

  • 2

我是 bash shell 脚本的新手,如果有人问过这个问题,我深表歉意。

我有多个文件的组合,例如:

USA.txt Florida.txt Miami.txt

我想加入这些文件并创建一个新文件,其中包含以下所有内容:

cat *.txt > USA_FLORIDA_MIAMI.txt

在另一种情况下,事情是在其他时候文件具有不同的前缀:

Canada.txt Quebec.txt Montreal.txt

所以在第二种情况下,输出将是 CANADA_QUEBEC_MONTREAL.txt:

cat *.txt > CANADA_QUEBEC_MONTREAL.txt

对于其他文件的所有组合,依此类推

在第一种情况下,USA.txt Florida.txt Miami.txt 是目录中唯一的 .txt 文件。在第二种情况下,它们将被 Canada.txt Quebec.txt Montreal.txt 替换,因此我需要编写一个代码,该代码始终结合目录中当时存在的所有 .txt 文件的前缀信息并将其添加到输出文件的前缀中。这里的变量是国家、州和城市的名称。

关于我可以使用的任何命令的任何建议?谢谢

linux text-processing
  • 2 个回答
  • 611 Views
Martin Hope
Paolo Lorenzini
Asked: 2019-07-08 11:20:33 +0800 CST

每隔 n 行将值粘贴到新列中

  • 0

我有一个这样的 file.txt:

1
2
3
4
5
6

如果我想使用 awk 命令在新列中添加值(Apple),我可以这样做:

awk -v RS='\r\n' 'BEGIN { OFS = " " } {print $0, "Apple"}' file.txt > file_new.txt

这将给出:

1 Apple
2 Apple
3 Apple
4 Apple
5 Apple
6 Apple

现在,假设我想要这个输出:

1 Apple
2 Apple
3 Orange
4 Orange
5 Banana
6 Banana

如何修改awk命令?

linux
  • 2 个回答
  • 124 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