マニフェストbashスクリプトの一部としてSFPモジュールを確認し、それを.csvファイルに追加します。現在の形式はさまざまな長さで、次のようになります。
RO01;1000BaseSX SFP;1000BaseSX SFP
RO02;1000BaseSX SFP;1000BaseSX SFP;1000BaseLX SFP
私の目標は、最初の行だけでなく、最初の行以降の各行にも独自の行を提供することです。したがって、上記の行は次のようになります。
RO01;1000BaseSX SFP
RO01;1000BaseSX SFP
RO02;1000BaseSX SFP
RO02;1000BaseSX SFP
RO02;1000BaseLX SFP
テキスト処理を使用してこれをどのように達成できますか?
答え1
考えられる解決策は以下を使用することですawk
。
awk -F";" '{ for (i = 2; i <= NF; i++) { printf("%s;%s\n", $1, $i); } }' file
(フィールド区切り記号)をに設定しましたawk -F";"
。次に、各行(レコード)に対してフィールド2から最後のフィールド()まで始め、フィールド1と現在のフィールド()を印刷します。FS
;
NF
for (i = 2; i <= NF; i++)
$i