簡體   English   中英

我想 pipe grep output 到 Z177544AA797AF6F322F8CAA5E80EF 輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM