在linux中,請問如何把檔案的內容向前或向後移動指定的長度

時間 2021-08-11 16:24:52

1樓:

$ dd if="source_file" of="dest_file" bs=20 skip=1

具體需求是這樣的, 這個功能是用在嵌入式linux平臺上(arm9 + linux 2.6.32 kernel),要求對檔案系統中的一個指定檔案定期地刪除最老的118個位元組的資料,也就是最開頭的118個位元組刪掉, 檔案大小是128k。

隨著定期刪除,檔案size變為128k-118*n. dd命令的方案,可能沒法實現單檔案維護(理解錯誤的話請指正)。 還有什麼效率高的關於檔案i/o操作的c函式或指令碼可以實現快速操作嗎, 比如有什麼命令或函式可以把指定檔案裡的資料整體直接往前挪118個位元組。

$ cp file file.bak

$ dd if=file.bak of=file bs=118 skip=1

如果不能複製檔案,就程式設計實現吧,很簡單,檔案全部讀到記憶體,再寫回原檔案

2樓:小米飛貓

這個最好看一下你要操作的文字。通過文字中尋找規律。

使用awk對列進行調整

如果單純的只是切字元

cut -c 21-128 file #輸出從第21個字元開始到128字元的內容

在linux命令列下如何將指定的幾行內容寫入到一個檔案中?

3樓:曹曉山

linux下可以用sed命令向檔案抄

中追加內容。

案例:把/etc/test1檔案中1-10行內容寫入到test2中sed -n '1,10'p /etc/test1 >>test2#將file1的1-10行追加到file2sed命令列格式為:

sed [-nefri] ‘command’ 輸入文字常用選項:

-n∶使用安靜(silent)模式;

-e∶直接在指令列模式上進行 sed 的動作編輯;

-f∶直接將 sed 的動作寫在一個檔案內;

-r∶sed 的動作支援的是延伸型正規表示法的語法;

-i∶直接修改讀取的檔案內容,而不是由螢幕輸出。

4樓:小米飛貓

sed -n '1,10p' file1 >> file2

將file1的1-10行追加到 file2

5樓:匿名使用者

echo -ne "line1\nline2\nline3\n" > file

line1 line2 line3 是行內容。

6樓:匿名使用者

perl -ne 'print if 1..10' file >result.txt

7樓:星顏霍高原

-fls

/path/to/somefile

:查詢到的所有檔案的長格式資訊儲存到指定檔案中。

在linux中給一個文字檔案寫內容的方法(三種)

8樓:匿名使用者

例如往檔案a.txt寫入內容hello world!

方法一:

[root@cc ~]# vim a.txthello world!

wq方法二:

[root@cc ~]# echo 'hello world!'>a.txt

方法三:

cat b.txt

hello world!

cat b.txt>a.txt

9樓:百里楹

一,使用文字編輯器法。

二,使用重定向的方法。

三,使用像是sed這種程式來改寫檔案內容。

1,使用文字編輯器法:這種方法是最直接也是最直觀的了。比如使用vim、nano、gedit等等文字編輯器都可以對檔案進行寫入(前提是有相應的許可權)。

3,使用像是sed這種程式來改寫檔案內容,也可以使用tee這個命令在寫檔案,tee可以將標準輸入的內容寫入到檔案內。

10樓:阿爾邁凡

linux下更改檔案的方法有很多

如果單說方法而不計較寫入的手段的話可以說是多不勝數

一般的手段包括使用文字編輯器法

這種方法是最直接也是最直觀的了

比如使用vim、nano、gedit等等文字編輯器都可以對檔案進行寫入(前提是有相應的許可權)

另一種方法可以使用重定向的方法

我們也可以使用重定向的方法將內容寫入的檔案內(同樣的,前提是有相應的許可權,即當前使用者對該檔案有寫入許可權)

這個方法就是將檔案的輸出重定向到另一個檔案

平常的我們的輸出都是輸出在標準輸出上的(螢幕),我們只需要將原本輸出的標準輸出的內容重定向到檔案裡就可以了

比如使用cat、echo、head、tail等等命令,然後通過》或者》將內容重定向到檔案裡,前都在寫入時會將文字檔案中的內容清除,後者則會在原有文字檔案的未尾追加內容

當然也可以使用像是sed這種程式來改寫檔案內容

也可以使用tee這個命令在寫檔案

tee可以將標準輸入的內容寫入到檔案內

總之linux上將內容寫入文字檔案的方法有很多種

在不考慮自己動手寫程式的情況下,平常的手段基本上就是這些了

LINUX中如何不經過排序刪除檔案中重複的行(相同行,只保留

樓上 uniq必須是連續的重複才行把 用awk肯定行 這是一個cu的精華帖,差不多,對於你的問題你給稍等我修改一下。ps感謝紅袖添香大姐 cu精華 經典回顧 假設我有如下檔案 cat aa 123 def1 456 345 def2 812 123 def3 563 322 def4 684 123...

在Linux中,如何配置DNS

牙衣伢依 安裝包之後 1 dns主配置檔案與區域資料檔案配置 在 var named chroot etc目錄下建立dns的主配檔案 named.conf vi var named chroot etc named.conf 2 建立正反向區域檔案 在 var named chroot var na...

linux中如何把程序放在後台執行

一 在linux中,如果要讓程序在後台執行,一般情況下,我們在命令後面加上 即可,實際上,這樣是將命令放入到乙個作業佇列中了 test.sh 1 17208 jobs l 1 17208 running test.sh 二 對於已經在前台執行的命令,也可以重新放到後台執行,首先按ctrl z暫停已經...