[英]Change path using awk or sed
您好,我想將符號鏈接路徑更改為 txt 文件中的真實路徑。 首先,我找到單詞“SF:”並更改路徑。 現在我使用這個腳本但是它很慢而且沒有效果。 我認為它可以通過 awk 或 sed 命令進行更改。 先感謝您。
#!/bin/bash
FILENAME="new1.info"
echo "" > $FILENAME
while read LINE
do
if [ "" != "$(echo $LINE | grep -e "^SF:")" ]
then
echo "SF:""$(realpath $(echo $LINE | cut -d":" -f2))" >> $FILENAME
else
echo $LINE >> $FILENAME
fi
done < total.info
我有一個很大的 txt 文件,所以我想找到“SF:”並從這樣的內容更改行:
SF:/home/ects/svn/moduleTests/ctest/tests/moduletests/base/tmp/src/base64.cpp
對此:
SF:/home/ects/svn/moduleTests/ctest/src/base/base64.cpp
在 bash 中,我會寫
#!/bin/bash
while IFS= read -r line; do
if [[ "$line" == "SF:"* ]]; then
line="SF:$(realpath "${line#SF:}")"
fi
echo "$line"
done < total.info > new1.info
注意事項:
IFS= read -r line
是從文件中准確讀取行的方法。 我不知道這是否會更快:bash 可能會很慢,特別是對於大文件的while read
循環。 你可以嘗試另一種語言:
perl -MCwd=abs_path -pe 's/^SF:\K(.*)/ abs_path($1) /e' total.info > new1.info
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.