このようなawkコマンドを使用して自分のデータファイルの1つを操作する必要があります。どうすればawkを使ってこれを達成できますか?どんな入力も感謝します。ありがとうございました。番号に基づいてフィールドの1つに行番号を割り当てます。各行のフィールドの数
1) Get the no. of fields for each row.
(a) If the count_of_fields = 'x' then assign a value to nth field in each row.
入力: -
1,x,A,B
2,A,B,C
3,x,C,D
4,D,E,F,G
5,x,E,F
**
出力
**: -
1,1,A,B
2,A,B,C
3,3,C,D
4,D,E,F,G
5,5,E,F
x- is the 2nd column where I would like to assign NR when NF=4
n - This is the 2nd column.
例をより明確にしてください、入力中に 'X'と 'N'は何ですか?あなたは今まで何を試しましたか? – 123
あなたが入力したサンプル入出力について考えてみてください。フィールドがxでNFが4のときにのみ何かをする必要があるようですが、フィールドがxであるたびにサンプル入力を投稿するのはなぜですか?** NF **は常に** 4ですか?誰かが書いたように、NFが4のときにxを変更し、投稿されたサンプル入力に対してテストするというあなたの要求を完全に無視するソリューションを書くことができます。また、あなたは**常に**私はその要件も無視することができるように変更したいフィールドにxを持っています。これはひどい例ですが、あなたのユースケースをカバーするほどではありません! –
たとえば、awk '{sub(/ x /、NR)} 1'ファイルのソリューションを投稿し、投稿されたサンプル入力に対して実行すると、投稿された期待出力が生成されます。その完全に間違ったソリューションはもちろんですが、サンプル入力/出力にはどのような価値がありましたか?なし。変更が必要な変更を避けることは常に容易であり、変更したくない変更を避けるのはずっと難しいので、サンプルの入出力を作成するときに、実際には難しいと思われるケースを思いついています。あなたの最も基本的な要件をカバーするケース。 –