我尝试从一个文本文件中复制3列并将其粘贴到新的文本文件中。但是,每当我执行此脚本时,原始文本文件中的所有列都将被复制。这是我使用的代码:
data
有关我做错的建议吗?另外,有更简单的方法吗?谢谢!
答案 0 :(得分:2)
我们假设输入是逗号分隔的:
$ cat File
1,2,3,4,5,6,7
a,b,c,d,e,f,g
我们可以使用cut
提取第1,2和6列:
$ cut -d, -f 1,2,6 File
1,2,6
a,b,f
请注意使用选项-d,
指定列分隔符是逗号。
默认情况下,cut
使用标签作为列分隔符。如果文件中的分隔符是其他内容,则必须使用-d
选项。
答案 1 :(得分:1)
使用awk
awk -vFS=your_delimiter_here -vOFS=your_delimiter_here 'print $1,$2,$6' PROFILES.1.0.profile > compiledfile.txt
应该这样做。
对于以逗号分隔的字段,解决方案为
awk -vFS=, -vOFS=, '{print $1,$2,$6}' PROFILES.1.0.profile > compiledfile.txt
FS
是awk builtin
变量,代表field-separator
。
同样地,OFS
代表output-field-separator
。
使用awk的方便的-v
选项可以帮助您为变量赋值。
答案 2 :(得分:0)
你可以使用awk。
awk -F "delimiter" '
{
print $1,$2 ,$3 #Where $1,$2 and so are column numbers
}' filename > newfile