我有一個包含如下 URL 列表的文件:
www.dell.com/any=abc&anyone=bcd
www.google.co.in
www.yahoo.com/abc=fgh
我想清理它們,因為它們只顯示等於號的資料。例如上面應該變成:
www.dell.com/any=
www.dell.com/any=abc&anyone=
www.google.co.in
www.yahoo.com/abc=
對於在 python 或 bash 等中清理這樣的程式碼有什麼腳本建議嗎?
答案1
如果我理解正確的話,您想要應用以下轉換:
- 如果該行不包含
=
,則不執行任何操作 - 如果該行包含單個
=
,則刪除該行之後的所有內容=
- 如果該行包含多個
=
,則重複執行上一步,直到沒有為止,列印每個步驟的中間結果
這是一種方法:
#!/usr/bin/env bash
while read line; do
if [[ "$line" == *=* ]]; then
while [[ "$line" == *=* ]]; do
line=${line%=*}
echo $line=
done
else
echo $line
fi
done
如果將其保存在文件中script.sh
,則可以像這樣使用它:
./script.sh < input.txt
這將產生您在問題中詢問的輸出。