root@ROUTER:~# cat maccheck.txt
logread | egrep ': STA |DHCPACK' | awk '{print $1" "$2" "$3" "$9}' | sed -e 's/\( [0-9] \)/0\1/' | sed "s/.\{15\}/&:/; s/: /:/g" | cut -d : -f 1,2,4,5,6,7,8,9 | sed "s/.\{13\}/&X/;" | sed 's/:X/ /g' | sed 's/XX:XX:XX:XX:XX:XX/AAAA/g' | sort -u -r
ここにいれば大丈夫です:
root@ROUTER:~# logread | egrep ': STA |DHCPACK' | awk '{print $1" "$2" "$3" "$9}' | head -1
Sep 2 03:03:25 XX:XX:XX:XX:XX:XX
しかし、内容がより多くのスクリプトを使用することはお勧めできません。
root@ROUTER:~# sh maccheck.txt |head -1
Sep0 4 13:13 AAAA
すると「Sep0」は不良です。 「Sep」で修正する方法は?
root@ROUTER:~# logread | egrep ': STA |DHCPACK' | awk '{print $1" "$2" "$3" "$9}' | sed -e 's/\( [0-9] \)/0\1/' | head -1
Sep0 2 03:03:25 AAAA
質問は次のとおりです。
sed -e 's/\( [0-9] \)/0\1/'
尋ねる:同じ出力が必要ですが、「Sep」に「0」がない場合はどうすればよいですか?
答え1
\1
あなたのグループ(該当するセクション)\( \)
にリストされているすべての項目が提供されます。グループにスペースが含まれているため、0 が入力され、「2」が追加されます。
編集するには、次のように変更してください。
sed -e 's/ \([0-9]\) / 0\1 /'
はい
今後
$ cat sample.txt | sed -e 's/\( [0-9] \)/0\1/'
Sep0 2 03:03:25 XX:XX:XX:XX:XX:XX
後ろに
$ cat sample.txt | sed -e 's/ \([0-9]\) / 0\1 /'
Sep 02 03:03:25 XX:XX:XX:XX:XX:XX