在設置的記錄間隔中,我需要刪除4行/記錄。這可以用awk或sed來完成。使用awk刪除行的第n行
我有一個文件,每70條記錄有一個換頁符。這導致在我的輸出中打印出空行。
我想使用awk或sed在換頁之前刪除四(4)行,因此我的頁面現在已經有66行。
這應該消除我的空白頁面。
我傳遞的文件是假脫機文件中的幾千條記錄,我希望有一個簡單的解決方案。我試過
sed -n -e '65~68p;
但我不認爲我的unix盒子上有這樣的空間,因爲當我嘗試運行該命令時出現錯誤。
在設置的記錄間隔中,我需要刪除4行/記錄。這可以用awk或sed來完成。使用awk刪除行的第n行
我有一個文件,每70條記錄有一個換頁符。這導致在我的輸出中打印出空行。
我想使用awk或sed在換頁之前刪除四(4)行,因此我的頁面現在已經有66行。
這應該消除我的空白頁面。
我傳遞的文件是假脫機文件中的幾千條記錄,我希望有一個簡單的解決方案。我試過
sed -n -e '65~68p;
但我不認爲我的unix盒子上有這樣的空間,因爲當我嘗試運行該命令時出現錯誤。
awk '{if ((NR%70) <65) print $0;}' inputfile
應該做的工作。
pbhd給了一個很好的解決方案之前,我設法張貼礦,但在這裏它是如果你想使用Python這樣做:
import sys
s = sys.stdin.read()
for page in s.split('\f'):
lines = page.splitlines()
print '\n'.join(lines[:-4]) + '\f'
sed 'H;g;s:[^\n]::g;/.\{64\}/{N;N;N;s:.::g; x;s:\n::p;d};${x;s:\n::;p};d' FILE
這條線將刪除接下來的3行在65,65 * 2,...,65 * K之後。
如果要刪除多於3行的行,請添加更多的N; N; N ;.
would not this只刪除我的文件的第三和四行?我需要它刪除整個文件中的行。例如,我需要將67,68和69行刪除,然後再讀取67行後再刪除三行。 –
糾正和簡化了一點 – alinsoar
做了我需要它做的 - 完全!謝謝 –
@TomBell,現在的禮儀是通過接受它來獎勵正確答案 - 參見http://meta.stackexchange.com/a/5235 –
'awk'(NR%70)<65'inputfile' –