[英]I want to pipe grep output to sed for input
我正在嘗試 pipe grep 的 output 到 Z177544AA797AF6F322F8CAA 僅編輯特定文件8 我不希望 sed 在不更改的情況下編輯某些內容。 (更改修改日期。)
我正在用 grep 搜索並用 sed 寫作。 而已
我要改變的是破折號,不是普通類型,是特殊類型。 “-“ 是正常的。 “-”不正常
我目前擁有的代碼:
sed -i 's/– foobar/- foobar/g' * ; perl-rename 's/– foobar/- foobar/' *'– foobar'*
很抱歉給您添麻煩了,我沒有經驗。
你確定你想要達到的目標嗎? 讓我給你解釋一下:
grep "string_in_file" <filelist> | sed <sed_script>
這首先顯示了“string_in_file”,前面是文件名。
如果您在此啟動sed
,那么它只會在屏幕上顯示sed
-script 的結果,但不會更改文件本身。 為此,您需要以下內容:
grep -l "string_in_file" <filelist> | sed <sed_script_on_file>
grep -l
顯示一些文件名,新的 sed_script_on_file 需要是一個腳本,讀取文件並更改它。
如果您的文件名不包含換行符,這可能是您嘗試做的事情:
grep -l -- 'old' * | xargs sed -i 's/old/new/'
謝謝大家的幫助,很抱歉沒有快速回復
經過一番擺弄命令后,我明白了:
grep -l 'old' * | xargs -d '\n' sed -i 's/old/new/'
這應該只觸及包含old
文件並保留所有其他文件的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.