- 締切済み
UNIXシェルでこんな事がしたいのですが。
元ファイルとして yyyymmdd hhmmss $string1 $string2 $string3 $string4 $string5 $string6 のように、8項目が半角スペースで区切られているログファイルがあります。 このログファイルを以下の規則に則って変換したい。 1)この半角スペースをタブに変換したい 2)ただし、yyyymmdd-hhmmss間と$String5-$String6間の半角スペースはそのまま半角スペースとしておきたい 3)変換後のファイルにおいて、yyyymmddの前に$String0として任意の文字列を挿入したい できればPerlを使用せず、bashだけで行いたいと思っています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
回答No.2
#!/bin/bash TAB=$'\t' while read y h s1 s2 s3 s4 s5 s6 do echo "string0 $y $h$TAB$s1$TAB$s2$TAB$s3$TAB$s4$TAB$s5 $6" done < inputfile > outputfile
- furaijin
- ベストアンサー率54% (12/22)
回答No.1
awkを使えばいけるかと思います。 多少強引ですが $ awk '{print "string0" "\t" $1, $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6 "\t" $7,$8 }' test.txt でやりたいことはできると思います。