次のSEDコマンドを使用しています。 sed '/cell.* '"alatch {"'/,/^}/p' -n file
入力ファイルは次のとおりです。 cell abc {
pins on T {
a b c
}
}
cell xyz {
pins on T {
x y z
}
}
cell alatch {
pins on T {
VSS VDDPI VDDP
}
pins on L {
IN CT CB
}
pins on R {
OUT
}
inputs {
CB CT IN
}
outputs {
OUT
}
}
cell alatch {
pins on T {
VSS VDDPI VDDP
}
pins on L {
IN CT CB
}
pins on R {
OUT
}
inputs {
CB CT IN
}
outputs {
OUT
}
}
出力は次のとおりです。 cell alatch {
pins on T {
VSS VDDPI VDDP
}
pins on L {
IN CT CB
}
pins on R {
OUT
}
inputs {
CB CT IN
}
outputs {
OUT
}
}
cell alatch {
pins on T {
VSS VDDPI VDDP
}
pins on L {
IN CT CB
}
pins on R {
OUT
}
inputs {
CB CT IN
}
outputs {
OUT
}
}
予想される出力は次のとおりです。 cell alatch {
pins on T {
VSS VDDPI VDDP
}
pins on L {
IN CT CB
}
pins on R {
OUT
}
inputs {
CB CT IN
}
outputs {
OUT
}
}
必要なのは、状況が最初に発生した場合にのみ出力になることです。指揮者のためのアドバイスはありますか?
私は学んでいますawk。私の問題の解決策を見つけようとして、私は次のコードを見つけましたが、最後に停止しました1.説明: 内容file: H|20200425|abcd| # header
R|abc|2019-03-06|100.00
R|abc|2019-03-06|15.00
R|abc|2019-03-06|10.00
最後に追加 T|20200425|-count of records-|-sum of 4th column-
20190306.txt出力をYYYYMMDD形式の3列目の日付であるファイルに送信します。 私の試み: awk -F'|' '
# get the date formatted
NR == 2 {
d = $3; gsub(/-/,"",d)
}
# get the 2nd field of the header
NR == 1 {
a = $2
}
# if the line starts with 'R', sum the column and get the count of them
$1 == "R" {
sum += $4
++c
}
# print the final line with variables acquired
END {
OFS = "|"; print "T",a,c,sum".00"
}1
' file
このコマンドは「予想」結果を提供します。 H|20200425|abcd|
R|abc|2019-03-06|100.00
R|abc|2019-03-06|15.00
R|abc|2019-03-06|10.00
T|20200425|3|125.00
変数dはです20190306。 しかし、私が尋ねている質問は、この出力をファイルにリダイレクトする方法です20190306.txt。 「もちろん、これは誤ったコーディングです。ため息をつく、Brainache)、しかし私の目標は可能な限り問題に集中することであり、すべてのバグを指摘するように要求するわけではありません。
私のPSVファイルは次のとおりです Column1|Column2|Column3
Web_Value_in_file|123|OLA
Tab_Value_out_file|453|OLA
ソース列とターゲット列が異なります。 1列の値を_区切り文字でターゲットの複数の列に切り取りたいです。出力ファイルをExcel(.xlsx)と同じにしたいです。 Column1 Column2 Column3
Web In 123
Tab Out 453