我需要能夠將文本文件複製到其他位置,然後刪除此文本文件的內容(不刪除文件)。在bash中複製活動寫入到bash中的文件
目前,我這樣做:
#!/bin/bash
count=0
for filename in `find . -name "*_list" -print`
do
while read -r line
do
echo $line
sync
echo "### Trace Info ###" > log.txt
sync
python worker.py "$line"
echo $line > traces/trace$count.txt
sync
sync
sleep 1
sync
sync
cp log.txt traces/trace$count.txt
#cp log.txt traces/log.txt
sync
sleep 1
count=$((count+1))
done < $filename
done
但調用同步睡覺它不是爲我工作,而不是我得到的文件是這樣的: (注:蟒蛇文件沒有寫日誌。 txt CacheGrind是)。
CachegrindMemMod/vg-in-place --tool=cachegrind --trace-children=yes /usr/sbin/mysqld 2>log.txt
cat trace10.txt | xxd
0000000: 2323 2320 5472 6163 6520 496e 666f 2023 ### Trace Info #
0000010: 2323 0a00 0000 0000 0000 0000 0000 0000 ##..............
0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
這個跟蹤有4兆字節的零應該是文本。
ls -la trace10.txt
-rw-r--r-- 1 root root 4350121 2012-04-29 15:34 trace10.txt
我猜有一些緩存事情是阻止我能夠得到的利息文本。任何想法都會很棒。
如果您有興趣的文件應包含CacheGrind的修改版本,看起來像這樣獲取的內存地址的列表:
Dw: 0x4916e30
Dw: 0x4916df0
Dw: 0x4916db0
Dw: 0x4916d70
Dr: 0x4916d30
Dr: 0x4916cf0
Dr: 0x4916cb0
Dr: 0x4916c70
Dr: 0x4916c30
Dr: 0x4916bf0
Dr: 0x4916bb0
Dr: 0x4916b70
Dr: 0x4916b30
Dr: 0x4916af0
Dr: 0x4916ab0
CacheGrind也修改後的版本,可以發現here
附加信息: 我注意到有些文件只包含頭文件而且沒有空數據。這也讓我想到它的I/O緩存問題
沒有必要用'$(...)'來啓動子shell來增加'$ count'。你可以用'count = $ [count + 1]' – dschulz
@dschulz:它是'$((expr))''做一個不同的事情,並且它不會在子shell中執行。 –
@KolyolyHorvath我錯了,謝謝! TIL關於'$((表達式))'。很長一段時間,我認爲任何以'$('開始與子外殼有關的東西 – dschulz