如何在ubuntu中删除一个文本文件中的某一列?
-
- 帖子: 48
- 注册时间: 2011-05-05 16:38
如何在ubuntu中删除一个文本文件中的某一列?
如题,有一个比较大的文本文件,大概有1G
我想删除其中的某一列,不是行,行可以用sed删除
怎么操作呢?谢谢!
比如一个叫example的文件,有一万行和一万列,我想删除第8列,该怎么办呢?
我想删除其中的某一列,不是行,行可以用sed删除
怎么操作呢?谢谢!
比如一个叫example的文件,有一万行和一万列,我想删除第8列,该怎么办呢?
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
这样会多一个 FS
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
代码: 全选
cut -f '1-7,9-'
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
再sed处理一下。如果是空格,lilydjwg 写了:这样会多一个 FS
代码: 全选
sed 's/ / /g'
上次由 我就是我2 在 2011-09-19 15:56,总共编辑 1 次。
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 如何在ubuntu中删除一个文本文件中的某一列?
为何说sed不能处理列?一万行跟一行是一样的:
echo 1a 2b 3d 4c 5e 6f 7g 8h 9i 0j|sed -r 's/\b\S+\s//8'
1a 2b 3d 4c 5e 6f 7g 9i 0j
echo 1a 2b 3d 4c 5e 6f 7g 8h 9i 0j|sed -r 's/\b\S+\s//8'
1a 2b 3d 4c 5e 6f 7g 9i 0j
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 48
- 注册时间: 2011-05-05 16:38
Re: 如何在ubuntu中删除一个文本文件中的某一列?
用cut 怎么才能得到一个删除了第8行的文件呢,执行你说的那个命令就是只会在屏幕上显示,谢谢!lilydjwg 写了:这样会多一个 FS
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
重定向啊啊啊啊。你赶紧去恶补 shell 的基本操作吧。。。。。yimaizhe 写了:用cut 怎么才能得到一个删除了第8行的文件呢,执行你说的那个命令就是只会在屏幕上显示,谢谢!lilydjwg 写了:这样会多一个 FS
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
标准输出重定向到文件。yimaizhe 写了:用cut 怎么才能得到一个删除了第8行的文件呢,执行你说的那个命令就是只会在屏幕上显示,谢谢!lilydjwg 写了:这样会多一个 FS
cut.... >foobar.txt
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
-
- 帖子: 48
- 注册时间: 2011-05-05 16:38
Re: 如何在ubuntu中删除一个文本文件中的某一列?
thanks a lot , it works well following your code,我就是我2 写了:标准输出重定向到文件。yimaizhe 写了:用cut 怎么才能得到一个删除了第8行的文件呢,执行你说的那个命令就是只会在屏幕上显示,谢谢!lilydjwg 写了:这样会多一个 FS
cut.... >foobar.txt
hehe, i am a newbie on shell
-
- 帖子: 229
- 注册时间: 2007-07-01 17:36
- 系统: (En):System
- 来自: (En):address
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
你们的方法都太短,太简单,太快速,太高效,不适合初学者。
我来个基础的,按部就班的,淫荡的:
例子数据,删除第8列:
还有一个更淫荡更基础的方法,我就不说了,大家都知道。
我来个基础的,按部就班的,淫荡的:
例子数据,删除第8列:
代码: 全选
kent$ seq 11 50 |xargs -n10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
kent$ seq 11 50|xargs -n 10 |awk '{for (i=1;i<=NF;i++) a[i,NR]=$i; }END{
for(i=1;i<=NF;i++) {
for(j=1;j<=NR;j++)
printf a[i,j]" ";
print ""
}
}' |awk 'NR!=8'|awk '{for (i=1;i<=NF;i++) a[i,NR]=$i; }END{
for(i=1;i<=NF;i++) {
for(j=1;j<=NR;j++)
printf a[i,j]" ";
print ""
}
}'
输出:
11 12 13 14 15 16 17 19 20
21 22 23 24 25 26 27 29 30
31 32 33 34 35 36 37 39 40
41 42 43 44 45 46 47 49 50
---
regards,
Kent
regards,
Kent
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?

苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
-
- 帖子: 229
- 注册时间: 2007-07-01 17:36
- 系统: (En):System
- 来自: (En):address
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
我的那个其实是个用awk转置矩阵的方法,虽然用在这个例子上显得有点可笑了,但是有些特殊情况还是挺有用的。我写那个也就是开个玩笑。
其实要实现lz的功能,简单的办法就是用vim打开,然后
发现要是描述vim里的一个操作,还是真费劲。 1,2秒就操作完成的描述能描述一大段。。。
如果要用高级的功能是,用高级的文本编辑器(如excel)打开文件,然后用几个高级的方法,最后输出你要的结果。
最后求教一下,vim里,ctrl-v 状态下,要选择光标所在列的一整列,怎么弄? jG不行。
其实要实现lz的功能,简单的办法就是用vim打开,然后
代码: 全选
7f<空格>
然后
ctrl-v
nj (n是行数)
nl (n是看你这列有多少字符就是多少)
x
如果要用高级的功能是,用高级的文本编辑器(如excel)打开文件,然后用几个高级的方法,最后输出你要的结果。
最后求教一下,vim里,ctrl-v 状态下,要选择光标所在列的一整列,怎么弄? jG不行。
---
regards,
Kent
regards,
Kent
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 如何在ubuntu中删除一个文本文件中的某一列?
LS,别人的文档可是有1G大的。。。 

苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!