私は一番上の行の'|'
の数を格納unixファイル全体の区切り文字の数を比較して一番上の行(フィールド)と一致させる方法は?
var=$(cat ip.txt | head -1 | sed 's/[^|]//g' | awk '{ print length }')
としてVARを設定しています。
その後、私は
awk -F\| '{print NF-1}' ip.txt
を使用して各行の区切り文字の数を取得することができますし、私は私が$var
と得る個々の数字を比較する必要があります。
最終的な出力は、このような動作を示す行数です。 たとえば、2行目から20行目がヘッダーよりも区切り文字の方が多い場合、私の出力は19行に合計6000行(ファイル内の行数)の先頭行より区切り文字の数が多くなります。
例:
$ cat ip.txt
DeptID|EmpFName|EmpLName|Salary
Engg|Sam|Lewis|1000
Engg|Smith|Davis|2000|||
HR|Denis|Lillie|1500
HR|Danny|Borrinson|3000|
IT|David|Letterman|2000||
IT|John|Newman|3000
ヘッダ有する3 '|' が、行3,5及び6は、余分な区切り文字を持っています。 私が出力
実際の入力サンプルと予想される出力を指定します。 – Inian
例を使って質問を編集しました – Dgstah