【发布时间】:2019-01-07 14:56:10
【问题描述】:
我正在尝试编辑一个文件,以便删除两侧带有新行的字符串。
我的文件看起来像:
ENSG00000000460_chr1.dat
varX data data data data data
varX data data data data data
varX data data data data data
ENSG00000005801_chr11.dat
ENSG00000006007_chr16.dat
ENSG00000006607_chr2.dat
varX data data data data data
varX data data data data data
ENSG00000010219_chr12.dat
ENSG00000011052_chr17.dat
我试图获得的输出将删除两侧有新行的行(并删除新行),导致输出如下所示:
ENSG00000000460_chr1.dat
varX data data data data data
varX data data data data data
varX data data data data data
ENSG00000006607_chr2.dat
varX data data data data data
varX data data data data data
我在 sed 中尝试过各种想法,但都返回:
sed 's/[\na-zA-Z0-9\n]//g' file.txt | head
_.
. .- . . . . .
. .- . . . . .
-. .- . . . . .
-. .- . . . . .
_.
_.
我也试过了:
sed 's/[\n][a-zA-Z0-9][\n]//g' file.txt | head
但这会按原样返回文件:
ENSG00000000460_chr1.dat
varX data data data data data
varX data data data data data
varX data data data data data
ENSG00000005801_chr11.dat
ENSG00000006007_chr16.dat
ENSG00000006607_chr2.dat
varX data data data data data
varX data data data data data
ENSG00000010219_chr12.dat
ENSG00000011052_chr17.dat
【问题讨论】:
-
你尝试输出什么。
-
我从来没有用过sed,但如果它像普通的正则表达式一样工作,那我不明白为什么这么多人不理解
[ ]的含义。 -
[\na-zA-Z0-9\n]表示:1 of (\n 或字母或数字) -
请查看
[ ]的含义。因为[^a-zA-Z0-9$]表示任何 1 不是字母、数字或 $ 的符号 -
我也尝试使用 [ ] (我现在已将其添加到示例中)。
标签: regex bash sed replace find