我無法使用sed將非打印字符替換爲其他不可打印字符。 具體來說,我希望sed在表格中以TAB開始並在其中插入一個BACKSPACE,從而將該行中的文本引導至上一行。將sed與非打印字符配合使用
這樣做的原因是,我有一個表拆分成多列,一些行佔用多行:
column1,row1 column2,row1,line1
column2,row1,line2
我想它最終會像這樣(ISH)
column1,row1 column2,row1,line1 column2,row1,line2
(間距無關緊要)
雖然我似乎無法處理這個問題。我不確定表達式\ t sand \ b是否被識別,但它們似乎沒有按照我嘗試過的方式。我也不能獲得與這些
這些八進制表示回聲命令是我試過的那種東西:
sed 's/^\t/\b/' file.txt newfile.txt
sed 's/^(`echo "\011"`)/`echo "\010"`/' file.txt newfile.txt
任何幫助,將不勝感激。
你真的想「插入退格」,或者這將是足以消除換行符?我的意思是,你的最終目標是將單行分成兩行,還是要插入實際的Ctrl-H? – ghoti 2012-07-12 11:18:47
我試着展現出我想要發生的事情。我希望縮進的行(帶有製表符)與第二列對齊,以便與上面的行相同,以便每行都只佔用一行。對不起,如果不清楚。 – user1488804 2012-07-12 11:33:42
我想你會混合使用「BACKSPACE」ASCII字符,Ctrl-H和編輯器命令「backspace」,通常分配給退格鍵和ctrl-h組合鍵。 插入BACKSPACE字符不會奇蹟般地刪除以前的字符。你需要運行一個編輯器並且一起按ctrl和H使編輯器移除該字符。 你真正需要做的是用\ t替換\ n \ t。我沒有時間測試確切的代碼 - 其他人是否可以提供該答案? – Arkadiy 2012-07-12 12:24:04