我想删除一个txt文件的最后一列,而我不知道列号是什么。我怎么能这样做?
例子:
输入:
1223 1234 1323 ... 2222 123
1233 1234 1233 ... 3444 125
0000 5553 3455 ... 2334 222
Run Code Online (Sandbox Code Playgroud)
我希望我的输出是:
1223 1234 1323 ... 2222
1233 1234 1233 ... 3444
0000 5553 3455 ... 2334
Run Code Online (Sandbox Code Playgroud) 我有一个巨大的数据文件.txt 看起来像:
calls...
12311 34213 13344 12345 34532
23345 24445 22445 12344 12333
34456 22211 12334 12234 23344
23345 24445 22445 12344 12333
Run Code Online (Sandbox Code Playgroud)
我想删除第一行(这是写的调用......那里)。
我使用了这个命令:
sed '1d' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
这会删除“调用...”。但问题是其他一些行也被删除了。是否有任何机构有任何其他建议可以帮助我删除呼叫...而不删除内部的其他行?当我使用此命令时,我的真实数据有 117,000 行和 10,000 列,则行数为 68,645 ,而它必须为 116,999 。当我在小数据中尝试 sed 时,就像我在这里展示的示例一样,行数不会改变,而在我的真实数据中却会改变。我真的很困惑为什么?
我的数据看起来像:
$ cat input
1212103122
1233321212
0000022221
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像:
$ cat output
1 2 1 2 1 0 3 1 2 2
1 2 3 3 3 2 1 2 1 2
0 0 0 0 0 2 2 2 2 1
Run Code Online (Sandbox Code Playgroud)
我试过:
sed -i 's// /g' input > output
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
有什么建议?
我想根据第一行中的信息将文件拆分为不同的文件。例如,我有:
输入:
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 4 30 30 30 30
0 2 2 0 2 0 2 0 2 0 2 2 0 0 2 2 2 0 1 1 1 2 0 2 0 0 0 2 0 0 2 0 2
0 2 1 0 1 0 1 1 1 0 2 2 0 …
Run Code Online (Sandbox Code Playgroud) 文件1:
HOGBRM443983 -2522.00 19800826
HOGBRM445985 -2389.00 19801101
HOUSAM1891409 -1153.00 19811228
HOUSAM2004289 -650.00 19860101
HOUSAM2005991 -843.00 19860109
HOCANM388722 -1546.00 19860116
HOUSAM2007297 -1882.00 19860125
HOUSAM2007389 -1074.00 19860128
HOITAM801038516 -691.00 19860128
Run Code Online (Sandbox Code Playgroud)
第 2 列和第 3 列分别包含 column1 中每个 id 的值和生日信息(年、月、日)。我想检查每个出生年份存在多少个 id,以及不同年份 id 的平均值(来自第二列)是多少。例如,在 file1 中,1980、1981 和 1986 年分别有 2、1 和 6 个 ID,因此输出应为:
output:
1980 2 -2455.5
1981 1 -1153.00
1986 6 -114.33
Run Code Online (Sandbox Code Playgroud)
其中第一列显示出生年份,第二列显示每年的id数,第三列是不同年份的ids平均值。
考虑到真实数据确实很大,任何建议将不胜感激。
我想将多行的一列转换为一行:
例子 :
1
1
1
1
1
2
2
2
3
3
4
Run Code Online (Sandbox Code Playgroud)
而且我要 :
11111222334
Run Code Online (Sandbox Code Playgroud)
请问有什么建议吗?
我想分隔第二列中的值小于特定值的那些行。
示例输入:
id1 19501112
id2 19831207
id3 20001212
id6 20000101
id10 20061213
id11 20081212
id12 20100109
id13 20101218
id14 20101212
id15 20111111
id16 20150919
id20 20141415
Run Code Online (Sandbox Code Playgroud)
我想提取那些第二个字段的值小于 20100101 的行。所以,我的输出是:
id1 19501112
id2 19831207
id3 20001212
id6 20000101
id10 20061213
id11 20081212
Run Code Online (Sandbox Code Playgroud)
请问有什么建议吗?
如何将多个文件连接在一起,以使最终输出中的列之间没有任何间隙?例如,如果以下是两个输入: input1.txt
22211 21111 11111
22222 22222 11111
22222 11111 23211
Run Code Online (Sandbox Code Playgroud)
输入2.txt
22211 21111
22222 20002
22222 11111
Run Code Online (Sandbox Code Playgroud)
我希望我的输出是这样的:
22211 21111 11111 22211 21111
22222 22222 11111 22222 20002
22222 11111 23211 22222 20002
Run Code Online (Sandbox Code Playgroud)
但问题是当我使用这个命令时:
paste input1.txt input2.txt > out.txt
Run Code Online (Sandbox Code Playgroud)
然后 out.txt 上有一个空白,其中两个文件连接在一起,例如:
22211 21111 11111 22211 21111
22222 22222 11111 22222 20002
22222 11111 23211 22222 20002
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能看不到这个差距?我应该提到我有 37 个 txt 文件(hap1.txt hap2.txt ..hap37.txt),我希望将它们并排连接在一起。请问有什么建议吗?
我有这样的数据(真实数据有超过 50,000 位数字和 8000 行):
输入:
1 11122
1 21121
2 22221
2 11122
3 21121
3 11122
Run Code Online (Sandbox Code Playgroud)
我想将每个第二行的值放在具有相同名称的第一行的值旁边。此外,每对值之间应该有两个空格作为分隔符,并且不同的值对之间应该有一个制表符作为分隔符。输出应如下所示:
输出:
1 1 2 1 1 1 1 2 2 2 1
2 2 1 2 1 2 1 2 2 1 2
3 2 1 1 1 1 1 2 2 1 2
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?