タグ付けされた質問 「sed」

sedは、テキストをフィルタリングおよび変換するためのコマンドラインストリームエディターです。

3
sedを使用してテキストファイルの一部とそれに続く行を削除する
次のようにファイルを編集する必要があります。 auto wlx00 allow-hotplug wlx00 iface wlx000 inet dhcp iface wlx000 inet6 auto post-up sysctl -w net.ipv6.conf.wlx000.accept_ra=2 auto wlx000 目標は、「iface ... inet6」で始まる行を削除し、スペースで始まる次の数行を削除することです(1つも複数でもかまいません)。 iface wlx000 inet6 auto post-up sysctl -w net.ipv6.conf.wlx000.accept_ra=2 残りはそのままにして、次の結果を出します。 auto wlx00 allow-hotplug wlx00 iface wlx000 inet dhcp auto wlx000 私は次のようにしてsedを使って試しました: sed -i.old -r -e "/iface\s*\w*\s*inet6.*/,\${d;/^\s.*/d;}" /etc/configfile しかし、それは適切な場所から始まり、最後まで消去するすべてを削除します。選択したifaceテキストの後に、スペースで始まる行を削除したいだけです。

4
スペースで区切るが、バックスラッシュスペースは無視する
5678 [] testing,\ group [] [testing [] ip\ 5.6.7.8 [] launch-wizard-1 0.0.0.0/0 456dlkjfa [] 1.2.3.4 [] test 1.2.3.4/32 4.3.2.0/23 4.3.2.0/23 default 4.3.2.0/23 4.3.2.0/23 launch-wizard-2 0.0.0.0/0 launch-wizard-3 0.0.0.0/0 2.3.4.5/32 [] 上記の最初の列を取得したいのですが、問題は、\ (バックスラッシュスペース)を列の一部として扱う必要があるためawk '{print $1}'です。 5678 testing,\ group [testing ip\ 5.6.7.8 launch-wizard-1 456dlkjfa 1.2.3.4 test default launch-wizard-2 launch-wizard-3 2.3.4.5/32

3
指定された行番号でsed操作を実行します
行番号が事前に割り当てられている特定の行を操作する簡単な方法があるかどうか疑問に思っています。 ファイルの1、7、14、16行目を出力したいとしましょう。 sed -n '1p;7p;14p;16p' input_file しかし、操作が印刷だけではなく、同じ長いコマンドを4回書きたくない場合、これはさらに複雑になります(そして、はい、同じbash変数を4回代入することで、この長いsedコマンドを作成できることを知っていますが、それは十分に理想的ではありません...)、すなわち sed -n '1{long_command};7{long_command};14{long_command};16{long_command}' input_file 私のファイルのこれらの特定の行で操作を行う方法はありますか?私は次のようなものを期待しています、 sed -n '1,7,14,16p' これは確かに現在の形式では機能しません。 どんな助けでもありがたいです。「いいえ、それは不可能です。」説明付きは私が受け入れる答えでもあります。
8 sed 

2
共通のヘッダーを使用して2つのファイルの行をマージするにはどうすればよいですか?
ヘッダーとして存在する共通データに基づいて2つのファイルをマージしたい。 以下はその例です ファイル1 >Feature scaffold1 1 100 g 101 200 g 201 300 g >Feature scaffold2 1 100 g 01 500 g >Feature scaffold3 10 500 g >Feature scaffold4 10 300 g ファイル2 >Feature scaffold1 500 500 r 900 1000 r >Feature scaffold2 200 300 r >Feature scaffold3 100 200 …

3
なぜこの方法でgrepできないのですか?
「disable = yes」という行を「disable = no」に変更して、次のファイルに入れます。 [root@centos2 ~]# cat /etc/xinetd.d/tftp service tftp { ... server_args = -s /var/lib/tftpboot disable = yes per_source = 11 ... } 私はこれを試しました: [root@centos2 ~]# grep 'disable = yes' /etc/xinetd.d/tftp [root@centos2 ~]# 私のマウスでスペースをコピーするだけで、それは何もグレップしません... 「無効化」と「=」の間の要素が何であり、どのようにしてわかりますか?いくつかのスペースですか?集計? 私は次の正規表現を使用してgrepできることを知っています: [root@centos2 xinetd.d]# grep -E 'disable.+= yes' /etc/xinetd.d/tftp disable = yes [root@centos2 xinetd.d]# …
8 sed  grep 

2
Nを使用すると、sed出力に混乱します。これらの結果について誰かが説明できますか?
私はセッドを学んでいます。N(次は複数行)に出会うまで、すべてが順調に進んでいるように見えました。このファイル(guide.txt)は、練習/理解/コンテキストの目的で作成しました。上記のファイルの内容は次のとおりです... This guide is meant to walk you through a day as a Network Administrator. By the end, hopefully you will be better equipped to perform your duties as a Network Administrator and maybe even enjoy being a Network Administrator that much more. Network Administrator Network Administrator I'm a Network …
8 sed 

1
特定の番号のみが含まれている場合、sedを使用して行全体を削除する
txtファイルがあります 123 456 789 456 123456 ファイル(123)から特定の文字を削除したい。私が試した $ sed -i '/123/d' dummy.sh $ vi dumm.txt 456 789 456 以下のコマンドで、両方の単語(123と123456)を実行すると削除さ123れますが、ファイルからのみ削除する必要があります $ sed -i 's/123//g' dummy.sh $ vi dumm.txt 456 789 456 456 以下のコマンドを実行する123と、nullに置き換えられます。 特定の番号のみが含まれている行全体を削除する方法を誰かが言うことができますか?

2
sedまたはawkを使用して、いくつかの文字を除くすべての行の.txtファイルに文字列を追加する方法
次の名前のテキストファイルがありますxid.txt。 xid: SC48028 id: artf398444 xid: indv1000 id: indv24519 xid: SC32173 id: artf398402 xid: SC21033 id: artf398372 xid: 1001 id: tracker4868 xid: wiki1000 id: wiki10709 xid: proj1234 id: proj12556 「SC48028」、「SC32173」などの前に「PT_」という文字列を追加する必要があります。文字列「SC ...」は、「AC ...」または「DL ..」の任意の組み合わせで開始できます。 必要な出力: xid: PT_SC48028 id: artf398444 xid: indv1000 id: indv24519 xid: PT_SC32173 id: artf398402 xid: PT_SC21033 id: artf398372 …

3
'\ x00'バイトを含むバイナリストリームの編集
シェルツールだけを使用して、出力ストリームに0x00文字を保持しながら、NULL(0x00文字)を含むバイナリストリームをどのように編集できますか? 編集では、次のように、指定された位置の文字を別の文字(次の例では文字 '|')に置き換える必要があります。 dd ibs=1 skip=$offset count=$reglen status=none if=$ARQ | sed 's/./\|/2' | sed 's/./\|/5' #| more replacements.... ただし、sedは置換前にすべての '\ 0x00'文字を削除しています。 編集-@George Vasiliouテストを使用した私の環境でのsed動作のデモ: $ echo -e "lineA\nlineB\nlineC" | tr '\n' '\0' | od -t x1 0000000 6c 69 6e 65 41 00 6c 69 6e 65 42 00 6c 69 …
8 sed  binary 

6
1つの列のすべての値を1に置き換えます
12行3列のテキストファイルが複数あります。 例: 2 6 0.74 42 6 0.58 80 6 0 112 6 0.24 132 6 1 216 6 0.7 342 6 0 390 6 0.21 432 6 0.56 466 6 0.75 524 6 0.6 646 6 0.9 すべての行で3番目の列のすべての値を1に設定したいと思います。 出力は次のようになります。 2 6 1 42 6 1 80 6 1 112 …

2
whitepsacesを使用して複数のファイルから特定の文字を削除する
ディレクトリ内の多数の音楽トラックの名前を変更しようとしていますが、次のエラーが発生しました。 複数のファイルを移動する場合、最後の引数はディレクトリでなければなりません これはスクリプトです: for file in * ; do mv $file $(echo $file |sed 's/^.\{5\}//g') done これは空白のないファイルで機能しますが、このスクリプトをどのように変更しますか?
8 linux  bash  scripting  sed 

3
その行または次の行に特定の文字列が含まれていない場合に行を印刷する方法
Input.txt: 8B0C remove 8B0D remove 8B0E remove 8B0F 8B10 remove 8B14 remove 8B15 remove 8B16 remove 8B17 remove 8AC0 8AC1 remove 8AC2 remove 8AC3 remove 8AE4 8AE5 8AE6 remove 望ましい出力: 8B0F 8AC0 8AE4 8AE5 その行または次の行に「削除」が含まれていない場合、その行を印刷したい。私はソラリス5.10、KSHを使用しています。


3
文字列のn番目の文字の大文字と小文字を変更する
私は、文字列中のn番目の文字の大文字と小文字を変更するBASH(例えば、または任意の他の* nixのツールsed、awk、tr、など)。 文字列全体の大文字と小文字を次のように変更できることを知っています。 ${str,,} # to lowercase ${str^^} # to uppercase 「テスト」の3文字目の大文字を大文字に変更できますか? $ export str="Test" $ echo ${str^^:3} TeSt

2
オプションとなる可能性のある部分を含むテキストのブロックのグレッピング
非常に大きなログファイル、たとえばA.logにイベントを説明する複数のエントリがあります。ログファイルのイベントエントリで2つのことを実行したいと思います。 そのような各エントリの出現回数をカウントします(これは必須の要件ではありませんが、持っていると便利です)。 実際のエントリを別のファイルに抽出し、後で調べます。 典型的なイベントエントリは次のようになり、その間に他のテキストがあります。以下の例では、2つのイベントエントリがあり、最初のエントリには2つのDataChangeEntry ペイロードが含まれ、2番目のイベントには1 つのDataChangeEntry ペイロードが含まれています。 Data control raising event :DataControl@263c015d[[ #### DataChangeEvent #### on [DataControl name=PatternMatch_LegendTimeAxis, binding=.dynamicRegion1. beam_project_PatternMatch_dashboard_LegendTimeAxis_taskflow_LegendTimeAxis_beamDashboardLegendTimeAxisPageDef_beam_project_PatternMatch_dashboard_LegendTimeAxis_taskflow_LegendTimeAxis_beamDashboardLegendTimeAxis_xml_ps_taskflowid.dynamicRegion58. beam_project_PatternMatch_view_LegendTimeAxis_taskflow_LegendTimeAxis_beamVizLegendTimeAxisPageDef_beam_project_PatternMatch_view_LegendTimeAxis_taskflow_LegendTimeAxis_beamVizLegendTimeAxis_xml_ps_taskflowid.QueryIterator] Filter/Collection Id : 0 Collection Level : 0 Sequence Id : 616 ViewSetId : PatternMatch.LegendTimeAxis_V1_0_SN49 ==== DataChangeEntry (#1) ChangeType : UPDATE KeyPath : [2014-06-26 06:15:00.0, 0] AttributeNames : [DATAOBJECT_CREATED, …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.