小编kos*_*kos的帖子

重新格式化表格

我有以下类型的表:

ID   date     DailyFlow
a 1972-01-01 17.0265761797993
b 1972-01-02 17.200476457399
c 1972-01-03 17.2926436045271
d 1972-01-04 17.3900277599829
e 1972-01-05 17.5987080931028
f 1972-01-06 17.6334881486229
g 1972-01-07 17.7030482596626
...
Run Code Online (Sandbox Code Playgroud)

我想将它们重新格式化如下:

YYYY    DDD sim
1972    1   17.0265761797993
1972    2   17.200476457399
1972    3   17.2926436045271
1972    4   17.3900277599829
1972    5   17.5987080931028
1972    6   17.6334881486229
1972    7   17.7030482596626
1972    8   17.7204382874227
Run Code Online (Sandbox Code Playgroud)

第一行包含在表中。这些文件是带有“制表符”分隔符的纯文本 (*.txt)。ID 列是一个虚拟的列,我想摆脱它!在我想要的输出中,DDD 列上的数字 (1,2,3,...) 应与相应年份的日期相符。

有没有人知道如何做到这一点(使用 bash)?谢谢!

bash text-processing

2
推荐指数
1
解决办法
261
查看次数

如何通过列表添加 PPA?

我需要从包含存储库列表的文件中在 Ubuntu 14.04.3 上添加 PPA,如下所示:

sudo add-apt-repository ppa: $ (cat ppas.list)
Run Code Online (Sandbox Code Playgroud)

或者

sudo add-apt-repository $ (cat ppas.list)
Run Code Online (Sandbox Code Playgroud)

或者还没有

cat ppas.list | xargs sudo add-apt-repository
Run Code Online (Sandbox Code Playgroud)

但这些不起作用,并出现以下错误:“错误:需要单个存储库作为参数”。

有人可以帮忙吗?

command-line apt ppa repository

2
推荐指数
1
解决办法
467
查看次数

`awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow` 的解释是什么?

我正在使用该命令来获取登录我机器的用户列表,但我无法理解该命令的含义。

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
Run Code Online (Sandbox Code Playgroud)

command-line awk text-processing

2
推荐指数
2
解决办法
1486
查看次数

在海量文件中搜索特定的魔法字节

我想知道如何搜索特定的文件类型:我已进入 SSH 服务器并尝试搜索.jpg文件,但服务器的所有者(我的老师)已删除所有扩展名。

我已经尝试过grep -lr "JFIF"并且发现了许多具有相同文件名的目录,所以我跳到了一个随机目录,该目录是用该grep命令找到的,我尝试cat在其上使用该命令,但终端无法显示整个二进制文件。

另外strings命令在ssh服务器上被屏蔽了,我老师说你必须找到一个jpg文件,这个文件包含一个序列号(SN),但我不知道在哪里找到它。

如果你们想要SSH cardinals,我很乐意给你们,反正我老师说可以用file命令来做,但我不知道怎么做。

顺便说一句:他说(SN)

command-line files

2
推荐指数
2
解决办法
4322
查看次数

使用 mv 命令移动随机文件

简单而简短的问题;是否可以mv移动随机文件?

我知道mv可以使用 移动具有特定扩展名的所有文件mv *.extension,但是由于我对 Ubuntu/Linux 总体来说还是很新的,我不确定是否mv可以这样做。

command-line mv

2
推荐指数
1
解决办法
4601
查看次数

如何从命令的输出中提取特定的列或行?

例子:

abcd@abcd-abcde:~$ xinput --list --short

Virtual core pointer

? SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]

? Logitech USB RECEIVER                     id=12   [slave  pointer  (2)]
Run Code Online (Sandbox Code Playgroud)

我将如何从输出中提取一列,比如第二列?并且,例如,将其存储在变量中?

是否有可能做到这一点?

command-line output text-processing

2
推荐指数
1
解决办法
6016
查看次数

从非常大的 csv 文件中删除“_”

我有一个很大的 csv 文件(120GB),如下所示:

"JE",865438083645,2012-12-05T23:07:36.000Z,24,"NQ",142,"658_55525",475035504705
"JE",875619112765,2012-12-05T23:58:04.000Z,4,"PG",144,"219_9221",835399289335
"JE",125495251245,2012-12-05T18:16:06.000Z,206,"PLJE",153,"763_60771",445355650435
Run Code Online (Sandbox Code Playgroud)

我想从第七列中的值中删除下划线和引号(例如,"658_55525"变为65855525)。我正在使用的数据库的导入工具不允许在导入时转换或操作文件。

从命令行执行此操作的有效方法是什么?

command-line csv text-processing

1
推荐指数
1
解决办法
1189
查看次数

在第 11 行 Bash“意外的文件结尾”,没有第 11 行

我正在我的 Lubuntu 系统上尝试一个新的 conky 主题,为了运行它,我需要启动一个 bash 脚本:

#!/bin/bash
#sleep 18&&
conky -c /home/mathijs/conky/conky1&&
sleep 1&&
conky -c /home/mathijs/conky/conky2&&
sleep 1&&
conky -c /home/mathijs/conky/conky3&&
sleep 1&&
conky -c /home/mathijs/conky/conkyxx&&
sleep 1&&
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,终端给了我这个错误:

./start.sh: line 11: syntaxerror: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

然而在脚本中只有 10 行。我手工重写了它,并再次检查,但得到了同样的错误。我错过了什么?

bash

1
推荐指数
1
解决办法
1085
查看次数

Shell 脚本如果语法错误

if ($(ipcs|grep test|wc -l)=630); then

echo "Shared Memory check passed"
fi
Run Code Online (Sandbox Code Playgroud)

我得到以下错误:

./Test1: line 25: 636=630: command not found
Run Code Online (Sandbox Code Playgroud)

bash scripts

1
推荐指数
2
解决办法
2379
查看次数

“C”字印刷图案

我想从 file.tsv 中给出的每一行打印 Cys 残基的模式。file.tsv 有两列:sequenceID 和 Sequence。从第二列序列开始,第一个字符“C”应打印为 C,如果下一个直接残基不是 C,则代码应打印 C#。# 对于 n 种不同的氨基酸出现,应该只出现一次。

因此,当在列中时,如果“C”后跟另一个字符,我想在“C”之后打印 #。所以如果序列列的值是 DCFRCGHCC,那么它应该打印在第三列 C#C#CC 中。

示例输入:

c32_g1_i1_ 3GQKAKLKVPVFFLHRRGSICSSFYLMFSFEIKKK*TSKN*CFVCVRVRNRERAGVKCAHVYCPMFNGTQTH*IIISSLNS
c32_g1_i1_ 6AV*TADDDLVRLCSIEHGTIHMCTLYTCCTLTVTHTYTHKTLIFACLFFFNFKGEHQIERAANRTSSM*KKHRNF*LGLLAX
Run Code Online (Sandbox Code Playgroud)

输出应该是三列:sequenceID、Sequence、Cys pattern

c32_g1_i1_3,GQKAKLKVPVFFLHRRGSICSSFYLMFSFEIKKK*TSKN*CFVCVRVRNRERAGVKCAHVYCPMFNGTQTH*IIISSLNS,C#C#C#C#C
c32_g1_i1_6,AV*TADDDLVRLCSIEHGTIHMCTLYTCCTLTVTHTYTHKTLIFACLFFFNFKGEHQIERAANRTSSM*KKHRNF*LGLLAX,C#C#CC#C 
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

1
推荐指数
1
解决办法
356
查看次数

标签 统计

command-line ×7

text-processing ×5

bash ×3

apt ×1

awk ×1

csv ×1

files ×1

mv ×1

output ×1

ppa ×1

repository ×1

scripts ×1