から始めて印刷し、N = 5短いawkはNから始まるフィールドを印刷するにはN番目のフィールド
awk '{for(i=5;i<=NF;i++){if(i<NF){printf "%s%s",$i,OFS}else{print $i}}'
# This is a bit lengthy!
どれ短いawk
利用できると言いますか?デフォルトのフィールド区切りとGNU AWK(バージョン4+)で
から始めて印刷し、N = 5短いawkはNから始まるフィールドを印刷するにはN番目のフィールド
awk '{for(i=5;i<=NF;i++){if(i<NF){printf "%s%s",$i,OFS}else{print $i}}'
# This is a bit lengthy!
どれ短いawk
利用できると言いますか?デフォルトのフィールド区切りとGNU AWK(バージョン4+)で
、cut
は良く適しているかもしれない:
$ echo "1 2 3 4 5 6 7 8" | cut -d' ' -f5-
5 6 7 8
質問を再確認してください。OPは「awk」の解決策が必要です – Inian
@Inian、場合によってはそうかもしれませんが、OPの文脈からそうですナットを壊すためにスレッジハンマーを使用する。それは役立つかもしれないし、役に立たないかもしれませんが、これが合理的な解決策であることを止めるわけではありません(結局のところ、要件の1つが「より短い」ということでした)。 –
私はがあると思いません。わずかに短いwhileループを使うこともできますが、1行でしか動かないでしょう。また、私はあなたの以前の質問は、例がかなり短く関連していたのでうまくいったと思います。 – 123
は 'i <= NF'であってはなりませんか?私のマシンでは、別の行にフィールドを印刷します。同じ行にあるフィールドのフィールドを印刷したいのですか? – Sundeep