小编αғs*_*нιη的帖子

查找主机名以运行 SSH

我想使用 SSH 访问远程机器。但是,我不知道如何找到机器的HostName。我尝试使用该hostname命令,但这仅给出了机器的本地地址,(我认为)在不同的机器上可以相同。

当我尝试ssh name使用命令name返回的主机名时hostname,我收到一条错误消息,指出“主机名无法识别”。

如何找到可用于区分目标机器的完整主机名?

PS:我完全授权使用目标机器。

ssh hostname

6
推荐指数
1
解决办法
3万
查看次数

从字段中提取长度为 n 的数字并返回字符串

我有一个由文本和数字组合而成的制表符分隔文件。我想保留每一行,但我只想保留第 5 列中的六位数字(如果存在)。例如:

gene1   NM_033629   598G>A  P912    syndrome  1, 192315 syndrome 2,  225750 syndrome 3 610448   score   AD  hom user    123456  Source
gene2   NM_000459   613G>A  V115I   syndrome 1 600195   score   AD  rec user    234567  Source
Run Code Online (Sandbox Code Playgroud)

(以 Syndrome # 为例,这可以是任何文本,因此不是我可以搜索和删除的模式)

我希望输出是:

gene1   NM_033629   598G>A  P912    192315 225750 610448    score   AD  hom user    123456  Source
gene2   NM_000459   613G>A  V115I   600195  score   AD  rec user    234567  Source
Run Code Online (Sandbox Code Playgroud)

我有 4 种方法来提取 6 位数字,但是,我不能

一种。输出它起源的行中的数字

湾 使用一个编辑过的字段成功打印整行。我用来提取数字的选项是:

cat inputfile | cut -f 5 |grep -P …
Run Code Online (Sandbox Code Playgroud)

grep text-processing bioinformatics

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

将文件拆分为 N 个名称相同但目标目录不同的片段

我想将 sourcefile.txt其中包含 10000 行(每天增加)分成 30 个相等的文件。我有调用prog1to 的目录prog30,我想将文件拆分为具有相同文件名的这些目录。例如/prog1/myfile.txt/prog2/myfile.txt/prog30/myfile.txt.

这是我的 bash 脚本,名为divide.shprog目录中运行

#!/bin/bash
programpath=/home/mywebsite/project/a1/
array=/prog1/
totalline=$(wc -l < ./sourcefile.txt)   
divide="$(( $totalline / 30 ))"   
split --lines=$divide $./prog1/myfile.txt    
exit 1
fi
Run Code Online (Sandbox Code Playgroud)

text-processing split files

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

awk 中的单引号

有人可以解释一下下面的awk命令发生了什么吗?如果没有错误,那么为什么notme没有打印,为什么我没有收到语法错误,那么对于右括号...}需要用引号关闭...}'

$ awk '{print "me "$0 '"notme"} <<<"printme"
me printme
Run Code Online (Sandbox Code Playgroud)

那么我会尝试这个:

$ awk '{print "me "$0 '"\"$(date)"\"} <<<"printme-at "
me printme-at Wed Apr 11 16:41:34 DST 2018
Run Code Online (Sandbox Code Playgroud)

或者

awk '{print '"\"$(date)\""} <<<"run"
Wed Apr 11 16:56:38 DST 2018
Run Code Online (Sandbox Code Playgroud)

正如它所显示的,这意味着我可以使用 shell 命令替换来做任何事情。

这是一个错误吗?或者可能是我找不到的特殊状态。

awk

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

在 awk 中使用波浪号 ~ 运算符时需要在哪里转义序列?

我有一个pattern具有以下值的变量:

\"something//\\anotherthing'
Run Code Online (Sandbox Code Playgroud)

和一个包含以下内容的文件:

\"something//\\anotherthing'
\"something//\\anotherthing
\"something/\anotherthing'
\"something\anotherthing'
\\"something\/\/\\\\anotherthing'
Run Code Online (Sandbox Code Playgroud)

当我将从文件中读取的一行与使用==运算符的环境中的模式进行比较时,我得到了预期的输出:

patt="$pattern" awk '{print $0, ENVIRON["patt"], ($0 == ENVIRON["patt"]?"YES":"NO") }'  OFS="\t" file
\"something//\\anotherthing'    \"something//\\anotherthing'    YES
\"something//\\anotherthing     \"something//\\anotherthing'    NO
\"something/\anotherthing'      \"something//\\anotherthing'    NO
\"something\anotherthing'       \"something//\\anotherthing'    NO
\\"something\/\/\\\\anotherthing'       \"something//\\anotherthing'    NO
Run Code Online (Sandbox Code Playgroud)

但是当我对~操作员做同样的事情时,测试永远不会匹配。(我预计YES在第一行,如上所述):

patt="$pattern" awk '{print $0, ENVIRON["patt"], ($0 ~ ENVIRON["patt"]?"YES":"NO") }'  OFS="\t" file
\"something//\\anotherthing'    \"something//\\anotherthing'    NO
\"something//\\anotherthing     \"something//\\anotherthing'    NO
\"something/\anotherthing'      \"something//\\anotherthing'    NO
\"something\anotherthing'       \"something//\\anotherthing'    NO
\\"something\/\/\\\\anotherthing'       \"something//\\anotherthing'    NO
Run Code Online (Sandbox Code Playgroud)

要通过~比较解决问题,我需要对转义符进行双重转义:

patt="${pattern//\\/\\\\}" awk '{print $0, ENVIRON["patt"], ($0 ~ …
Run Code Online (Sandbox Code Playgroud)

awk escape-characters

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

数字标题

我需要将空格转换为分层的编号列表,但发现这难以捉摸。

这就是我所追求的事情:

输入(可见):

    Project #1
         Subproject
              Task
    Project #2
         Subproject
              Task
              Task
Run Code Online (Sandbox Code Playgroud)

输入(原始):

\tProject #1
\t\tSubproject
\t\t\tTask
\tProject #2
\t\tSubproject
\t\t\tTask
\t\t\tTask
Run Code Online (Sandbox Code Playgroud)

期望输出:

1: Project #1
     1.1: Subproject
          1.1.1: Task
2: Project #2
     2.1: Subproject
          2.1.1: Task
          2.1.2: Task
Run Code Online (Sandbox Code Playgroud)

perl text-formatting

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

如何将 tar.gz 文件同时提取到两个目的地?

我有一些tar.gz文件。我需要将这些tar.gz文件解压到两个 USB 硬盘上。使用该命令,tar -xvzf我一次只能将其提取tar.gz到一个硬盘。

非常感谢,如果我能被告知如何将tar.gz文件同时提取到两个硬盘。由于我需要迁移的文件总大小约为 4.5TB,这可以帮助我节省大量时间。

tar parallelism

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

sed 用换行符 Linux 替换 '\\'

我有多个带有以下文本的文件:

20~02~19~05-01-52
2249\\\2249\\\2249\\\2249\\\2249\\\2249\\\2248\\\
Run Code Online (Sandbox Code Playgroud)

我想使用 sed 或其他 Linux 命令来替换\\\换行符。

linux sed text-processing

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

如何在每个字符后添加特定字符?

我有一个号码 -> 12345

我想要以下格式的输出

1+2+3+4+5
Run Code Online (Sandbox Code Playgroud)
echo `cat fl.txt | paste -s -d ''`
Run Code Online (Sandbox Code Playgroud)

只给12345.

但是当我在下面的命令中添加这个 + 时,它给出了相同的12345.

echo `cat fl.txt | paste -s -d '' | tr -s '' '+'`
Run Code Online (Sandbox Code Playgroud)

text-processing

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

如何镜像大小为零的目录结构和文件?

我正在尝试镜像特定目录的目录文件结构。但是,我希望镜像文件没有大小。例如,如果我有以下目录树:

original_folder
??? images
?   ??? image1.jpg         (2 MB)
?   ??? image2.jpg         (3 MB)
??? videos
?   ??? video1.mp4         (300 MB)
?   ??? video2.mp4         (400 MB)
Run Code Online (Sandbox Code Playgroud)

我想要以下输出:

mirrored_folder
??? images
?   ??? image1.jpg         (0 b)
?   ??? image2.jpg         (0 b)
??? videos
?   ??? video1.mp4         (0 b)
?   ??? video2.mp4         (0 b)
Run Code Online (Sandbox Code Playgroud)

我尝试在以下命令中使用original_folder

cd original_folder
find . -name '*' -exec touch ../mirrored_folder/'{}' \;
Run Code Online (Sandbox Code Playgroud)

但是,此命令尝试执行touch ../mirrored_folder/./images/image1.jpg. 请注意将命令弄乱的点。我怎样才能实现我想要做的事情?

bash find directory-structure touch macos

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