最初のいくつかのフィールドが次のようになっている区切りファイルがあります。
2774013300|184500|2012-01-04 23:00:00|
最初のフィールドが 8 文字以上の特定の行を変更したいと考えています。最初の列の値を切り捨てたい。
の場合、2774013300
その値を にしたい27740133
。
sed
、できれば、または でこれを行いたいと思いawk
ます。
を使用するsed
と、行頭で 8 桁を超える数字を見つけることができますが、それを切り捨てる方法がよくわかりません。
sed -n -e /'^[0-9]\{10,\}/p' infile
最初の 8 文字にグループ化を使用して、それらを代替コマンドで返すことができると考えていますが、その方法がよくわかりません。
awk では、最初のフィールドを検出できますが、substr を使用して最初のフィールドを変更し、残りのフィールドを返す方法がよくわからないため、完全な行が保持されます。
awk -F'|' '{ if (length($1) > 9) { print $1; print length($1);} }' infile