这一行一直工作到第二个字段中出现空白。
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的解决方案:
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]" <文件
其他回答
以下是我在所有推荐中更喜欢的:
从第六列到最后一列打印。
ls -lthr | awk '{out=$6; for(i=7;i<=NF;i++){out=out" "$i}; print out}'
or
ls -lthr | awk '{ORS=" "; for(i=6;i<=NF;i++) print $i;print "\n"}'
echo "1 2 3 4 5 6" | awk '{ $NF = ""; print $0}'
它使用awk打印除最后一个字段以外的所有字段
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]" <文件
打印所有列:
awk '{print $0}' somefile
打印除第一列以外的所有内容:
awk '{$1=""; print $0}' somefile
打印除前两列以外的所有内容:
awk '{$1=$2=""; print $0}' somefile
这样能行吗?
awk '{print substr($0,length($1)+1);}' < file
它在前面留下了一些空白。