私はそれを使用しています
awk 'BEGIN {while((getline gf < "awk.script") > 0) {print gf}}'
このパターンの最初の3行を読んでください。 。使用できますが、 head -3
2つのファイル間で行を切り替える必要があるため、そうしたくありません。
awk.scriptに次のものが含まれているとします。
line 1
line 2
line 3 <------- until here
line 4
これで元のcmdを更新しようとしています
awk 'BEGIN {while((getline gf < "awk.script") > 0) && f{print $gf;f=0};NR<=3{f=1}}'
このコードはリンクに提供されている例の影響を受けます。 https://stackoverflow.com/questions/17908555/printing-with-sed-or-awk-a-line-following-a-matching-pattern
私が得るエラーは次のとおりです。
awk: cmd. line:1: BEGIN {while((getline gf < "awk.script") > 0) f{print $gf;f=0};NR<=3{f=1}}
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: BEGIN {while((getline gf < "awk.script") > 0) f{print $gf;f=0};NR<=3{f=1}}
awk: cmd. line:1:
どうすればいいですか?ありがとう
ベストアンサー1
getlineを使用する必要はありませんが、これが必要な場合:
echo|awk 'BEGIN {while((getline gf < "awk.script") > 0) {print gf; if(++i > 2) break;}}'
次のような同じ動作が表示されることがあります。
awk 'NR>3{exit} {print $0}' input.txt
試みには2つの問題があります。 NRは増加せず、getline
句と対応するコードブロックの間にand演算子を使用しないでください。あなたの検査は不適切に見えます。&&
while
f