这一行一直工作到第二个字段中出现空白。
svn status | grep '\!' | gawk '{print $2;}' > removedProjs
有没有办法让awk打印所有2美元或更大的东西?(3、4美元. .直到我们不再有专栏了?)
我想我应该补充一点,我正在使用Cygwin在Windows环境中执行此操作。
这一行一直工作到第二个字段中出现空白。
svn status | grep '\!' | gawk '{print $2;}' > removedProjs
有没有办法让awk打印所有2美元或更大的东西?(3、4美元. .直到我们不再有专栏了?)
我想我应该补充一点,我正在使用Cygwin在Windows环境中执行此操作。
当前回答
Perl:
@m=`ls -ltr dir | grep ^d | awk '{print \$6,\$7,\$8,\$9}'`;
foreach $i (@m)
{
print "$i\n";
}
其他回答
awk '{out=$2; for(i=3;i<=NF;i++){out=out" "$i}; print out}'
我的答案是基于VeeArr的答案,但我注意到它在打印第二列(以及其余部分)之前以空白开始。因为我只有1个声望点,所以我不能评论它,所以这是一个新的答案:
以“out”作为第二列开始,然后添加所有其他列(如果存在)。只要有第二列,这就很好。
打印所有列:
awk '{print $0}' somefile
打印除第一列以外的所有内容:
awk '{$1=""; print $0}' somefile
打印除前两列以外的所有内容:
awk '{$1=$2=""; print $0}' somefile
打印从#2开始的列(输出在开始时没有尾随空格):
ls -l | awk '{sub(/[^ ]+ /, ""); print $0}'
这样能行吗?
awk '{print substr($0,length($1)+1);}' < file
它在前面留下了一些空白。
Perl的解决方案:
perl -lane 'splice @F,0,1; print join " ",@F' file
使用这些命令行选项:
-n循环输入文件的每一行,不自动打印每一行 -l在处理之前删除换行符,并在处理之后将它们添加回去 -a autosplit mode -将输入行分割到@F数组中。默认为空格分割 -e执行perl代码
splice @F,0,1从@F数组中清除第0列
join " ",@F连接@F数组的元素,在每个元素之间使用一个空格
Python的解决方案:
[sys.stdout.]写(' ' . join (line.split () [1:]) + ' \ n ')系统的线。Stdin]" <文件