[英]Edit a text file using a Bash script
我有以下格式的文件:
axel localhost> localhost>
mike localhost> STORAGE 298390/512000 (58.279296875%) localhost>
ab localhost> STORAGE 141361/512000 (27.6095703125%) localhost>
fghi localhost> localhost>
abcd localhost> STORAGE 165929/512000 (32.4080078125%) localhost>
lmno localhost> STORAGE 353073/512000 (68.9595703125%) localhost>
nuon localhost> localhost>
spar localhost> STORAGE 203766/512000 (39.798046875%) localhost>
fibo localhost> STORAGE 238204/512000 (46.52421875%) localhost>
nacci localhost> STORAGE 425737/512000 (83.1517578125%) localhost>
seldom localhost> STORAGE 69894/512000 (13.651171875%) localhost>
project localhost> STORAGE 86220/512000 (16.83984375%) localhost>
eccleston localhost> STORAGE 240084/512000 (46.89140625%) localhost>
swan localhost> STORAGE 279522/512000 (54.594140625%) localhost>
這是通過所產生的輸出listquota
在cyradm(賽勒斯-IMAPD)。 我有兩個問題;
localhost> localhost>
,應將第一個單詞寫入另一個文件,並刪除該行。 我將如何實現這一結果?
編輯
預期產出
mike 298390/512000 (58.279296875%)
ab 141361/512000 (27.6095703125%)
abcd 165929/512000 (32.4080078125%)
lmno 353073/512000 (68.9595703125%)
spar 203766/512000 (39.798046875%)
fibo 238204/512000 (46.52421875%)
nacci STORAGE 425737/512000 (83.1517578125%)
到目前為止我的循環看起來像:
while read thisline; do
if [ $2 == "localhost>" AND $3 == "localhost>" ];then
echo $1 >>/root/names.txt
sed '1d' filename.txt #but this deletes only the first line
fi
done
嘗試這個:
awk '/localhost> localhost>/{print $1 >"file2";next}{$2=$3=$NF=""}7' file
這將輸出您想要的文本,並為localhost> localhost>
case生成“file2”。
沒試過,我希望沒有錯字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.